From e3cc19fab6a1d3dcdd6d72062824c9cd0e247949 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Ferna=CC=81ndez=20Haro?= Date: Mon, 16 Nov 2020 16:55:46 +0100 Subject: [PATCH] Remove dependency of tests on strict SyntaxKind values --- .../__fixture__/all_extracted_collectors.ts | 37 +++ ...exed_interface_with_not_matching_schema.ts | 18 +- .../extract_collectors.test.ts.snap | 295 ------------------ .../tools/check_collector__integrity.test.ts | 4 +- .../src/tools/extract_collectors.test.ts | 3 +- 5 files changed, 49 insertions(+), 308 deletions(-) create mode 100644 packages/kbn-telemetry-tools/src/tools/__fixture__/all_extracted_collectors.ts delete mode 100644 packages/kbn-telemetry-tools/src/tools/__snapshots__/extract_collectors.test.ts.snap diff --git a/packages/kbn-telemetry-tools/src/tools/__fixture__/all_extracted_collectors.ts b/packages/kbn-telemetry-tools/src/tools/__fixture__/all_extracted_collectors.ts new file mode 100644 index 0000000000000..f531608dda50a --- /dev/null +++ b/packages/kbn-telemetry-tools/src/tools/__fixture__/all_extracted_collectors.ts @@ -0,0 +1,37 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { parsedExternallyDefinedCollector } from './parsed_externally_defined_collector'; +import { parsedImportedSchemaCollector } from './parsed_imported_schema'; +import { parsedImportedUsageInterface } from './parsed_imported_usage_interface'; +import { parsedIndexedInterfaceWithNoMatchingSchema } from './parsed_indexed_interface_with_not_matching_schema'; +import { parsedNestedCollector } from './parsed_nested_collector'; +import { parsedSchemaDefinedWithSpreadsCollector } from './parsed_schema_defined_with_spreads_collector'; +import { parsedWorkingCollector } from './parsed_working_collector'; +import { ParsedUsageCollection } from '../ts_parser'; + +export const allExtractedCollectors: ParsedUsageCollection[] = [ + ...parsedExternallyDefinedCollector, + ...parsedImportedSchemaCollector, + ...parsedImportedUsageInterface, + parsedIndexedInterfaceWithNoMatchingSchema, + parsedNestedCollector, + parsedSchemaDefinedWithSpreadsCollector, + parsedWorkingCollector, +]; diff --git a/packages/kbn-telemetry-tools/src/tools/__fixture__/parsed_indexed_interface_with_not_matching_schema.ts b/packages/kbn-telemetry-tools/src/tools/__fixture__/parsed_indexed_interface_with_not_matching_schema.ts index 109fc045b6ee0..572684fbe83fb 100644 --- a/packages/kbn-telemetry-tools/src/tools/__fixture__/parsed_indexed_interface_with_not_matching_schema.ts +++ b/packages/kbn-telemetry-tools/src/tools/__fixture__/parsed_indexed_interface_with_not_matching_schema.ts @@ -36,16 +36,14 @@ export const parsedIndexedInterfaceWithNoMatchingSchema: ParsedUsageCollection = fetch: { typeName: 'Usage', typeDescriptor: { - '': { - '@@INDEX@@': { - count_1: { - kind: SyntaxKind.NumberKeyword, - type: 'NumberKeyword', - }, - count_2: { - kind: SyntaxKind.NumberKeyword, - type: 'NumberKeyword', - }, + '@@INDEX@@': { + count_1: { + kind: SyntaxKind.NumberKeyword, + type: 'NumberKeyword', + }, + count_2: { + kind: SyntaxKind.NumberKeyword, + type: 'NumberKeyword', }, }, }, diff --git a/packages/kbn-telemetry-tools/src/tools/__snapshots__/extract_collectors.test.ts.snap b/packages/kbn-telemetry-tools/src/tools/__snapshots__/extract_collectors.test.ts.snap deleted file mode 100644 index fe589be7993d0..0000000000000 --- a/packages/kbn-telemetry-tools/src/tools/__snapshots__/extract_collectors.test.ts.snap +++ /dev/null @@ -1,295 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`extractCollectors extracts collectors given rc file 1`] = ` -Array [ - Array [ - "src/fixtures/telemetry_collectors/externally_defined_collector.ts", - Object { - "collectorName": "from_variable_collector", - "fetch": Object { - "typeDescriptor": Object { - "locale": Object { - "kind": 146, - "type": "StringKeyword", - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "locale": Object { - "type": "keyword", - }, - }, - }, - }, - ], - Array [ - "src/fixtures/telemetry_collectors/externally_defined_collector.ts", - Object { - "collectorName": "from_fn_collector", - "fetch": Object { - "typeDescriptor": Object { - "locale": Object { - "kind": 146, - "type": "StringKeyword", - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "locale": Object { - "type": "keyword", - }, - }, - }, - }, - ], - Array [ - "src/fixtures/telemetry_collectors/imported_schema.ts", - Object { - "collectorName": "with_imported_schema", - "fetch": Object { - "typeDescriptor": Object { - "locale": Object { - "kind": 146, - "type": "StringKeyword", - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "locale": Object { - "type": "keyword", - }, - }, - }, - }, - ], - Array [ - "src/fixtures/telemetry_collectors/imported_usage_interface.ts", - Object { - "collectorName": "imported_usage_interface_collector", - "fetch": Object { - "typeDescriptor": Object { - "locale": Object { - "kind": 146, - "type": "StringKeyword", - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "locale": Object { - "type": "keyword", - }, - }, - }, - }, - ], - Array [ - "src/fixtures/telemetry_collectors/indexed_interface_with_not_matching_schema.ts", - Object { - "collectorName": "indexed_interface_with_not_matching_schema", - "fetch": Object { - "typeDescriptor": Object { - "@@INDEX@@": Object { - "count_1": Object { - "kind": 143, - "type": "NumberKeyword", - }, - "count_2": Object { - "kind": 143, - "type": "NumberKeyword", - }, - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "something": Object { - "count_1": Object { - "type": "long", - }, - }, - }, - }, - }, - ], - Array [ - "src/fixtures/telemetry_collectors/nested_collector.ts", - Object { - "collectorName": "my_nested_collector", - "fetch": Object { - "typeDescriptor": Object { - "locale": Object { - "kind": 146, - "type": "StringKeyword", - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "locale": Object { - "type": "keyword", - }, - }, - }, - }, - ], - Array [ - "src/fixtures/telemetry_collectors/schema_defined_with_spreads_collector.ts", - Object { - "collectorName": "schema_defined_with_spreads", - "fetch": Object { - "typeDescriptor": Object { - "flat": Object { - "kind": 146, - "type": "StringKeyword", - }, - "my_objects": Object { - "total": Object { - "kind": 143, - "type": "NumberKeyword", - }, - "type": Object { - "kind": 131, - "type": "BooleanKeyword", - }, - }, - "my_str": Object { - "kind": 146, - "type": "StringKeyword", - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "flat": Object { - "type": "keyword", - }, - "my_objects": Object { - "total": Object { - "type": "long", - }, - "type": Object { - "type": "boolean", - }, - }, - "my_str": Object { - "type": "text", - }, - }, - }, - }, - ], - Array [ - "src/fixtures/telemetry_collectors/working_collector.ts", - Object { - "collectorName": "my_working_collector", - "fetch": Object { - "typeDescriptor": Object { - "flat": Object { - "kind": 146, - "type": "StringKeyword", - }, - "my_array": Object { - "items": Object { - "total": Object { - "kind": 143, - "type": "NumberKeyword", - }, - "type": Object { - "kind": 131, - "type": "BooleanKeyword", - }, - }, - }, - "my_index_signature_prop": Object { - "@@INDEX@@": Object { - "kind": 143, - "type": "NumberKeyword", - }, - }, - "my_objects": Object { - "total": Object { - "kind": 143, - "type": "NumberKeyword", - }, - "type": Object { - "kind": 131, - "type": "BooleanKeyword", - }, - }, - "my_str": Object { - "kind": 146, - "type": "StringKeyword", - }, - "my_str_array": Object { - "items": Object { - "kind": 146, - "type": "StringKeyword", - }, - }, - }, - "typeName": "Usage", - }, - "schema": Object { - "value": Object { - "flat": Object { - "type": "keyword", - }, - "my_array": Object { - "items": Object { - "total": Object { - "type": "long", - }, - "type": Object { - "type": "boolean", - }, - }, - "type": "array", - }, - "my_index_signature_prop": Object { - "avg": Object { - "type": "float", - }, - "count": Object { - "type": "long", - }, - "max": Object { - "type": "long", - }, - "min": Object { - "type": "long", - }, - }, - "my_objects": Object { - "total": Object { - "type": "long", - }, - "type": Object { - "type": "boolean", - }, - }, - "my_str": Object { - "type": "text", - }, - "my_str_array": Object { - "items": Object { - "type": "keyword", - }, - "type": "array", - }, - }, - }, - }, - ], -] -`; diff --git a/packages/kbn-telemetry-tools/src/tools/check_collector__integrity.test.ts b/packages/kbn-telemetry-tools/src/tools/check_collector__integrity.test.ts index b6ea9d49cf6d0..b4e934746dc45 100644 --- a/packages/kbn-telemetry-tools/src/tools/check_collector__integrity.test.ts +++ b/packages/kbn-telemetry-tools/src/tools/check_collector__integrity.test.ts @@ -90,10 +90,10 @@ describe('checkCompatibleTypeDescriptor', () => { expect(incompatibles).toHaveLength(1); const { diff, message } = incompatibles[0]; // eslint-disable-next-line @typescript-eslint/naming-convention - expect(diff).toEqual({ '.@@INDEX@@.count_2.kind': 'number' }); + expect(diff).toEqual({ '@@INDEX@@.count_2.kind': 'number' }); expect(message).toHaveLength(1); expect(message).toEqual([ - 'incompatible Type key (Usage..@@INDEX@@.count_2): expected (undefined) got ("number").', + 'incompatible Type key (Usage.@@INDEX@@.count_2): expected (undefined) got ("number").', ]); }); diff --git a/packages/kbn-telemetry-tools/src/tools/extract_collectors.test.ts b/packages/kbn-telemetry-tools/src/tools/extract_collectors.test.ts index b03db75b219f6..9f1a1a2052791 100644 --- a/packages/kbn-telemetry-tools/src/tools/extract_collectors.test.ts +++ b/packages/kbn-telemetry-tools/src/tools/extract_collectors.test.ts @@ -21,6 +21,7 @@ import * as ts from 'typescript'; import * as path from 'path'; import { extractCollectors, getProgramPaths } from './extract_collectors'; import { parseTelemetryRC } from './config'; +import { allExtractedCollectors } from './__fixture__/all_extracted_collectors'; describe('extractCollectors', () => { it('extracts collectors given rc file', async () => { @@ -35,6 +36,6 @@ describe('extractCollectors', () => { const results = [...extractCollectors(programPaths, tsConfig)]; expect(results).toHaveLength(8); - expect(results).toMatchSnapshot(); + expect(results).toStrictEqual(allExtractedCollectors); }); });