mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
This commit is contained in:
parent
20ab442eeb
commit
d684acdaef
5 changed files with 49 additions and 308 deletions
|
@ -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,
|
||||
];
|
|
@ -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',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -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",
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
],
|
||||
]
|
||||
`;
|
|
@ -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").',
|
||||
]);
|
||||
});
|
||||
|
||||
|
|
|
@ -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);
|
||||
});
|
||||
});
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue