CloudWatch: Refactor logs language tests (#111204)
This commit is contained in:
+24
-14
@@ -1,25 +1,21 @@
|
||||
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
||||
|
||||
import { CustomVariableModel } from '@grafana/data';
|
||||
import { Monaco, monacoTypes } from '@grafana/ui';
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { setupMockedTemplateService, logGroupNamesVariable } from '../../../mocks/CloudWatchDataSource';
|
||||
import { logsTestDataEmptyQuery } from '../../../mocks/cloudwatch-logs-test-data/empty';
|
||||
import { logsTestDataFilterQuery } from '../../../mocks/cloudwatch-logs-test-data/filterQuery';
|
||||
import { logsTestDataNewCommandQuery } from '../../../mocks/cloudwatch-logs-test-data/newCommandQuery';
|
||||
import { logsTestDataSortQuery } from '../../../mocks/cloudwatch-logs-test-data/sortQuery';
|
||||
import MonacoMock from '../../../mocks/monarch/Monaco';
|
||||
import TextModel from '../../../mocks/monarch/TextModel';
|
||||
import { ResourcesAPI } from '../../../resources/ResourcesAPI';
|
||||
import { ResourceResponse } from '../../../resources/types';
|
||||
import { LogGroup, LogGroupField } from '../../../types';
|
||||
import cloudWatchLogsLanguageDefinition from '../definition';
|
||||
import { LOGS_COMMANDS, LOGS_FUNCTION_OPERATORS, SORT_DIRECTION_KEYWORDS } from '../language';
|
||||
import cloudWatchLogsLanguageDefinition, { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../definition';
|
||||
import { LOGS_COMMANDS, LOGS_FUNCTION_OPERATORS, SORT_DIRECTION_KEYWORDS, language } from '../language';
|
||||
|
||||
import { LogsCompletionItemProvider } from './CompletionItemProvider';
|
||||
|
||||
jest.mock('monaco-editor/esm/vs/editor/editor.api', () => ({
|
||||
Token: jest.fn((offset, type, language) => ({ offset, type, language })),
|
||||
}));
|
||||
|
||||
const getSuggestions = async (
|
||||
value: string,
|
||||
position: monacoTypes.IPosition,
|
||||
@@ -36,16 +32,30 @@ const getSuggestions = async (
|
||||
);
|
||||
|
||||
setup.resources.getLogGroupFields = jest.fn().mockResolvedValue(fields);
|
||||
const monaco = MonacoMock as Monaco;
|
||||
const provider = setup.getCompletionProvider(monaco, cloudWatchLogsLanguageDefinition);
|
||||
const { suggestions } = await provider.provideCompletionItems(
|
||||
TextModel(value) as monacoTypes.editor.ITextModel,
|
||||
position
|
||||
);
|
||||
const model = monaco.editor.createModel(value, CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID);
|
||||
const { suggestions } = await provider.provideCompletionItems(model, position);
|
||||
return suggestions;
|
||||
};
|
||||
|
||||
describe('LogsCompletionItemProvider', () => {
|
||||
let tokenizer: monaco.IDisposable;
|
||||
|
||||
beforeAll(() => {
|
||||
monaco.languages.register({ id: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID });
|
||||
tokenizer = monaco.languages.setMonarchTokensProvider(CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID, language);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
for (const m of monaco.editor.getModels()) {
|
||||
m.dispose();
|
||||
}
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
tokenizer?.dispose();
|
||||
});
|
||||
|
||||
describe('getSuggestions', () => {
|
||||
it('returns commands for an empty query', async () => {
|
||||
const suggestions = await getSuggestions(logsTestDataEmptyQuery.query, logsTestDataEmptyQuery.position);
|
||||
|
||||
+23
-11
@@ -1,3 +1,5 @@
|
||||
import * as monaco from 'monaco-editor/esm/vs/editor/editor.api';
|
||||
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { logsTestDataCommentOnlyQuery } from '../../../mocks/cloudwatch-logs-test-data/commentOnlyQuery';
|
||||
@@ -5,27 +7,37 @@ import { logsTestDataEmptyQuery } from '../../../mocks/cloudwatch-logs-test-data
|
||||
import { logsTestDataMultiLineFullQuery } from '../../../mocks/cloudwatch-logs-test-data/multiLineFullQuery';
|
||||
import { logsTestDataSingleLineFullQuery } from '../../../mocks/cloudwatch-logs-test-data/singleLineFullQuery';
|
||||
import { logsTestDataWhitespaceOnlyQuery } from '../../../mocks/cloudwatch-logs-test-data/whitespaceQuery';
|
||||
import MonacoMock from '../../../mocks/monarch/Monaco';
|
||||
import TextModel from '../../../mocks/monarch/TextModel';
|
||||
import { linkedTokenBuilder } from '../../monarch/linkedTokenBuilder';
|
||||
import { StatementPosition } from '../../monarch/types';
|
||||
import cloudWatchLogsLanguageDefinition from '../definition';
|
||||
import cloudWatchLogsLanguageDefinition, { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../definition';
|
||||
import { language } from '../language';
|
||||
|
||||
import { getStatementPosition } from './statementPosition';
|
||||
import { LogsTokenTypes } from './types';
|
||||
|
||||
function generateToken(query: string, position: monacoTypes.IPosition) {
|
||||
const testModel = TextModel(query);
|
||||
return linkedTokenBuilder(
|
||||
MonacoMock,
|
||||
cloudWatchLogsLanguageDefinition,
|
||||
testModel as monacoTypes.editor.ITextModel,
|
||||
position,
|
||||
LogsTokenTypes
|
||||
);
|
||||
const model = monaco.editor.createModel(query, CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID);
|
||||
return linkedTokenBuilder(monaco, cloudWatchLogsLanguageDefinition, model, position, LogsTokenTypes);
|
||||
}
|
||||
|
||||
describe('getStatementPosition', () => {
|
||||
let tokenizer: monaco.IDisposable;
|
||||
|
||||
beforeAll(() => {
|
||||
monaco.languages.register({ id: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID });
|
||||
tokenizer = monaco.languages.setMonarchTokensProvider(CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID, language);
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
for (const m of monaco.editor.getModels()) {
|
||||
m.dispose();
|
||||
}
|
||||
});
|
||||
|
||||
afterAll(() => {
|
||||
tokenizer?.dispose();
|
||||
});
|
||||
|
||||
it('should return StatementPosition.NewCommand the current token is null', () => {
|
||||
expect(getStatementPosition(null)).toEqual(StatementPosition.NewCommand);
|
||||
});
|
||||
|
||||
+3
-3
@@ -44,10 +44,10 @@ export const getStatementPosition = (currentToken: LinkedToken | null): Statemen
|
||||
}
|
||||
|
||||
if (
|
||||
currentToken?.is(LogsTokenTypes.Delimiter, ')') ||
|
||||
(currentToken?.isWhiteSpace() && previousNonWhiteSpace?.is(LogsTokenTypes.Delimiter, ')'))
|
||||
currentToken?.is(LogsTokenTypes.Parenthesis, ')') ||
|
||||
(currentToken?.isWhiteSpace() && previousNonWhiteSpace?.is(LogsTokenTypes.Parenthesis, ')'))
|
||||
) {
|
||||
const openingParenthesis = currentToken?.getPreviousOfType(LogsTokenTypes.Delimiter, '(');
|
||||
const openingParenthesis = currentToken?.getPreviousOfType(LogsTokenTypes.Parenthesis, '(');
|
||||
const normalizedNonWhitespacePreceedingOpeningParenthesis = openingParenthesis
|
||||
?.getPreviousNonWhiteSpaceToken()
|
||||
?.value?.toLowerCase();
|
||||
|
||||
-8
@@ -1,11 +1,3 @@
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { LogsTokenTypes } from '../../language/logs/completion/types';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
|
||||
export const logsTestDataCommentOnlyQuery = {
|
||||
query: `# comment ending with whitespace `,
|
||||
tokens: [
|
||||
[{ offset: 0, type: LogsTokenTypes.Comment, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID }],
|
||||
] as monacoTypes.Token[][],
|
||||
};
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
export const logsTestDataEmptyQuery = {
|
||||
query: '',
|
||||
tokens: [],
|
||||
position: { lineNumber: 1, column: 1 },
|
||||
};
|
||||
|
||||
-13
@@ -1,17 +1,4 @@
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { LogsTokenTypes } from '../../language/logs/completion/types';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
|
||||
export const logsTestDataFilterQuery = {
|
||||
query: `filter logGroup `,
|
||||
tokens: [
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 6, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 15, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
] as monacoTypes.Token[][],
|
||||
position: { lineNumber: 1, column: 16 },
|
||||
};
|
||||
|
||||
+5
-105
@@ -1,109 +1,9 @@
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { LogsTokenTypes } from '../../language/logs/completion/types';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
|
||||
export const logsTestDataMultiLineFullQuery = {
|
||||
query: `fields @timestamp, unmask(@message) as msg, @memorySize
|
||||
| filter (@message like /error/ and bytes > 1000)
|
||||
| parse @message /(?<NetworkInterface>eni-.*?)/
|
||||
| stats count(NetworkInterface), max(@memorySize / 1000 / 1000) as provisonedMemoryMB by bin(1m)
|
||||
# this is a comment with the next line left being intentionally blank
|
||||
| filter (@message like /error/ and bytes > 1000)
|
||||
| parse @message /(?<NetworkInterface>eni-.*?)/
|
||||
| stats count(NetworkInterface), max(@memorySize / 1000 / 1000) as provisonedMemoryMB by bin(1m)
|
||||
# this is a comment with the next line left being intentionally blank
|
||||
|
||||
| limit 20`,
|
||||
tokens: [
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 6, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 17, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 18, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 19, type: LogsTokenTypes.Function, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 25, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 26, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 34, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 35, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 36, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 38, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 39, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 42, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 43, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 44, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 1, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 2, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 8, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 9, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 10, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 18, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 19, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 26, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 27, type: LogsTokenTypes.Regexp, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 31, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 32, type: LogsTokenTypes.Operator, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 35, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 36, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 41, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 42, type: LogsTokenTypes.Operator, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 43, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 44, type: LogsTokenTypes.Number, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 48, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 1, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 2, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 8, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 16, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 17, type: LogsTokenTypes.Regexp, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 1, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 2, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 8, type: LogsTokenTypes.Function, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 13, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 14, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 30, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 31, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 32, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 33, type: LogsTokenTypes.Function, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 36, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 37, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 48, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 49, type: LogsTokenTypes.Operator, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 50, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 51, type: LogsTokenTypes.Number, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 55, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 56, type: LogsTokenTypes.Operator, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 57, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 58, type: LogsTokenTypes.Number, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 62, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 63, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 64, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 66, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 67, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 85, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 86, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 88, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 89, type: LogsTokenTypes.Function, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 92, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 93, type: LogsTokenTypes.Number, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 94, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 95, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
[{ offset: 0, type: LogsTokenTypes.Comment, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID }],
|
||||
[{ offset: 0, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID }],
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 1, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 2, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 8, type: LogsTokenTypes.Number, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
] as monacoTypes.Token[][],
|
||||
| limit 20`,
|
||||
};
|
||||
|
||||
-15
@@ -1,19 +1,4 @@
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { LogsTokenTypes } from '../../language/logs/completion/types';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
|
||||
export const logsTestDataNewCommandQuery = {
|
||||
query: `fields @timestamp | `,
|
||||
tokens: [
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 6, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 17, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 18, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 19, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
] as monacoTypes.Token[][],
|
||||
position: { lineNumber: 1, column: 21 },
|
||||
};
|
||||
|
||||
-23
@@ -1,26 +1,3 @@
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { LogsTokenTypes } from '../../language/logs/completion/types';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
|
||||
export const logsTestDataSingleLineFullQuery = {
|
||||
query: `fields @timestamp, @message | limit 20 # this is a comment`,
|
||||
tokens: [
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 6, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 17, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 18, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 19, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 27, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 28, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 29, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 30, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 35, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 36, type: LogsTokenTypes.Number, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 38, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 39, type: LogsTokenTypes.Comment, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
] as monacoTypes.Token[][],
|
||||
};
|
||||
|
||||
@@ -1,21 +1,4 @@
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { LogsTokenTypes } from '../../language/logs/completion/types';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
|
||||
export const logsTestDataSortQuery = {
|
||||
query: `fields @timestamp | sort `,
|
||||
tokens: [
|
||||
[
|
||||
{ offset: 0, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 6, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 7, type: LogsTokenTypes.Identifier, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 17, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 18, type: LogsTokenTypes.Delimiter, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 19, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 20, type: LogsTokenTypes.Keyword, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
{ offset: 24, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID },
|
||||
],
|
||||
] as monacoTypes.Token[][],
|
||||
position: { lineNumber: 1, column: 26 },
|
||||
};
|
||||
|
||||
-8
@@ -1,11 +1,3 @@
|
||||
import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { LogsTokenTypes } from '../../language/logs/completion/types';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
|
||||
export const logsTestDataWhitespaceOnlyQuery = {
|
||||
query: ` `,
|
||||
tokens: [
|
||||
[{ offset: 0, type: LogsTokenTypes.Whitespace, language: CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID }],
|
||||
] as monacoTypes.Token[][],
|
||||
};
|
||||
|
||||
@@ -2,7 +2,6 @@ import { monacoTypes } from '@grafana/ui';
|
||||
|
||||
import { CLOUDWATCH_LOGS_SQL_LANGUAGE_DEFINITION_ID } from '../../language/cloudwatch-logs-sql/definition';
|
||||
import { CLOUDWATCH_PPL_LANGUAGE_DEFINITION_ID } from '../../language/cloudwatch-ppl/language';
|
||||
import { CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID } from '../../language/logs/definition';
|
||||
import { Monaco } from '../../language/monarch/types';
|
||||
import { commentOnlyQuery as cloudwatchLogsSQLCommentOnlyQuery } from '../cloudwatch-logs-sql-test-data/commentOnlyQuery';
|
||||
import { multiLineFullQuery as cloudwatchLogsSQLMultiLineFullQuery } from '../cloudwatch-logs-sql-test-data/multiLineFullQuery';
|
||||
@@ -11,14 +10,6 @@ import { partialQueryWithFunction as cloudwatchLogsSQLPartialQueryWithFunction }
|
||||
import { partialQueryWithSubquery as cloudwatchLogsSQLPartialQueryWithSubquery } from '../cloudwatch-logs-sql-test-data/partialQueryWithSubquery';
|
||||
import { singleLineFullQuery as cloudwatchLogsSQLSingleLineFullQuery } from '../cloudwatch-logs-sql-test-data/singleLineFullQuery';
|
||||
import { whitespaceQuery as cloudwatchLogsSQLWhitespaceQuery } from '../cloudwatch-logs-sql-test-data/whitespaceQuery';
|
||||
import { logsTestDataCommentOnlyQuery } from '../cloudwatch-logs-test-data/commentOnlyQuery';
|
||||
import { logsTestDataEmptyQuery } from '../cloudwatch-logs-test-data/empty';
|
||||
import { logsTestDataFilterQuery } from '../cloudwatch-logs-test-data/filterQuery';
|
||||
import { logsTestDataMultiLineFullQuery } from '../cloudwatch-logs-test-data/multiLineFullQuery';
|
||||
import { logsTestDataNewCommandQuery } from '../cloudwatch-logs-test-data/newCommandQuery';
|
||||
import { logsTestDataSingleLineFullQuery } from '../cloudwatch-logs-test-data/singleLineFullQuery';
|
||||
import { logsTestDataSortQuery } from '../cloudwatch-logs-test-data/sortQuery';
|
||||
import { logsTestDataWhitespaceOnlyQuery } from '../cloudwatch-logs-test-data/whitespaceQuery';
|
||||
import * as PPLMultilineQueries from '../cloudwatch-ppl-test-data/multilineQueries';
|
||||
import { newCommandQuery as PPLNewCommandQuery } from '../cloudwatch-ppl-test-data/newCommandQuery';
|
||||
import * as PPLSingleLineQueries from '../cloudwatch-ppl-test-data/singleLineQueries';
|
||||
@@ -70,19 +61,6 @@ const MonacoMock: Monaco = {
|
||||
};
|
||||
return TestData[value];
|
||||
}
|
||||
if (languageId === CLOUDWATCH_LOGS_LANGUAGE_DEFINITION_ID) {
|
||||
const TestData = {
|
||||
[logsTestDataEmptyQuery.query]: logsTestDataEmptyQuery.tokens,
|
||||
[logsTestDataWhitespaceOnlyQuery.query]: logsTestDataWhitespaceOnlyQuery.tokens,
|
||||
[logsTestDataCommentOnlyQuery.query]: logsTestDataCommentOnlyQuery.tokens,
|
||||
[logsTestDataSingleLineFullQuery.query]: logsTestDataSingleLineFullQuery.tokens,
|
||||
[logsTestDataMultiLineFullQuery.query]: logsTestDataMultiLineFullQuery.tokens,
|
||||
[logsTestDataFilterQuery.query]: logsTestDataFilterQuery.tokens,
|
||||
[logsTestDataNewCommandQuery.query]: logsTestDataNewCommandQuery.tokens,
|
||||
[logsTestDataSortQuery.query]: logsTestDataSortQuery.tokens,
|
||||
};
|
||||
return TestData[value];
|
||||
}
|
||||
if (languageId === CLOUDWATCH_PPL_LANGUAGE_DEFINITION_ID) {
|
||||
const TestData = {
|
||||
[PPLSingleLineQueries.emptyQuery.query]: PPLSingleLineQueries.emptyQuery.tokens,
|
||||
|
||||
Reference in New Issue
Block a user