[7.x] Remove dependency of tests on strict SyntaxKind values (#83440) (#83456)

This commit is contained in:
Alejandro Fernández Haro 2020-11-16 20:38:49 +01:00 committed by GitHub
parent 20ab442eeb
commit d684acdaef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 49 additions and 308 deletions

View file

@ -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,
];

View file

@ -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',
},
},
},

View file

@ -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",
},
},
},
},
],
]
`;

View file

@ -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").',
]);
});

View file

@ -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);
});
});