• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2025 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import path from 'path';
17import { TextSpan } from '../src/lspNode';
18
19export interface TestConfig {
20  expectedFilePath: string;
21  // CC-OFFNXT(no_explicit_any) project code style
22  [key: string]: Array<any> | string;
23}
24
25export interface TestCases {
26  [testName: string]: TestConfig;
27}
28
29const PROJECT_ROOT = path.resolve(__dirname, '../../');
30
31function resolveTestPath(relativePath: string): string {
32  return path.join(PROJECT_ROOT, relativePath);
33}
34
35export const testCases: TestCases = {
36  getDefinitionAtPosition: {
37    expectedFilePath: resolveTestPath('test/expected/getDefinitionAtPosition.json'),
38    '1': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition2.ets'), 655],
39    '2': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition3.ets'), 662],
40    '3': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition5.ets'), 664],
41    '4': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition7.ets'), 683],
42    '5': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition9.ets'), 666],
43    '6': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition11.ets'), 675],
44    '7': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition13.ets'), 664],
45    '8': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition15.ets'), 617],
46    '9': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition17.ets'), 677],
47    '10': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition18.ets'), 930],
48    '11': [resolveTestPath('test/testcases/getDefinitionAtPosition/getDefinitionAtPosition19.ets'), 634]
49  },
50  getSemanticDiagnostics: {
51    expectedFilePath: resolveTestPath('test/expected/getSemanticDiagnostics.json'),
52    '1': [resolveTestPath('test/testcases/getSemanticDiagnostics/getSemanticDiagnostics1.ets')],
53    '2': [resolveTestPath('test/testcases/getSemanticDiagnostics/getSemanticDiagnostics2.ets')]
54  },
55  getCurrentTokenValue: {
56    expectedFilePath: resolveTestPath('test/expected/getCurrentTokenValue.json'),
57    '1': [resolveTestPath('test/testcases/getCurrentTokenValue/getCurrentTokenValue1.ets'), 611],
58    '2': [resolveTestPath('test/testcases/getCurrentTokenValue/getCurrentTokenValue2.ets'), 612],
59    '3': [resolveTestPath('test/testcases/getCurrentTokenValue/getCurrentTokenValue3.ets'), 612],
60    '4': [resolveTestPath('test/testcases/getCurrentTokenValue/getCurrentTokenValue4.ets'), 611]
61  },
62  getFileReferences: {
63    expectedFilePath: resolveTestPath('test/expected/getFileReferences.json'),
64    '1': [resolveTestPath('test/testcases/getFileReferences/getFileReferences1_export.ets')]
65  },
66  getReferencesAtPosition: {
67    expectedFilePath: resolveTestPath('test/expected/getReferencesAtPosition.json'),
68    '1': [resolveTestPath('test/testcases/getReferencesAtPosition/getReferencesAtPosition1.ets'), 613],
69    '2': [resolveTestPath('test/testcases/getReferencesAtPosition/getReferencesAtPosition2.ets'), 635],
70    '3': [resolveTestPath('test/testcases/getReferencesAtPosition/getReferencesAtPosition4.ets'), 625]
71  },
72  getSyntacticDiagnostics: {
73    expectedFilePath: resolveTestPath('test/expected/getSyntacticDiagnostics.json'),
74    '1': [resolveTestPath('test/testcases/getSyntacticDiagnostics/getSyntacticDiagnostics1.ets')],
75    '2': [resolveTestPath('test/testcases/getSyntacticDiagnostics/getSyntacticDiagnostics2.ets')]
76  },
77  getSuggestionDiagnostics: {
78    expectedFilePath: resolveTestPath('test/expected/getSuggestionDiagnostics.json'),
79    '1': [resolveTestPath('test/testcases/getSuggestionDiagnostics/getSuggestionDiagnostics1.ets')]
80  },
81  getQuickInfoAtPosition: {
82    expectedFilePath: resolveTestPath('test/expected/getQuickInfoAtPosition.json'),
83    '1': [resolveTestPath('test/testcases/getQuickInfoAtPosition/getQuickInfoAtPosition1.ets'), 626],
84    '2': [resolveTestPath('test/testcases/getQuickInfoAtPosition/getQuickInfoAtPosition2.ets'), 618],
85    '3': [resolveTestPath('test/testcases/getQuickInfoAtPosition/getQuickInfoAtPosition3.ets'), 663]
86  },
87  getDocumentHighlights: {
88    expectedFilePath: resolveTestPath('test/expected/getDocumentHighlights.json'),
89    '1': [resolveTestPath('test/testcases/getDocumentHighlights/getDocumentHighlights1.ets'), 614],
90    '2': [resolveTestPath('test/testcases/getDocumentHighlights/getDocumentHighlights2.ets'), 717],
91    '3': [resolveTestPath('test/testcases/getDocumentHighlights/getDocumentHighlights3.ets'), 616],
92    '4': [resolveTestPath('test/testcases/getDocumentHighlights/getDocumentHighlights4.ets'), 626],
93    '5': [resolveTestPath('test/testcases/getDocumentHighlights/getDocumentHighlights5.ets'), 619],
94    '6': [resolveTestPath('test/testcases/getDocumentHighlights/getDocumentHighlights6.ets'), 657],
95    '7': [resolveTestPath('test/testcases/getDocumentHighlights/getDocumentHighlights7.ets'), 733]
96  },
97  getCompletionAtPosition: {
98    expectedFilePath: resolveTestPath('test/expected/getCompletionAtPosition.json'),
99    '1': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition1.ets'), 705],
100    '2': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition2.ets'), 735],
101    '3': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition3.ets'), 789],
102    '4': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition4.ets'), 767],
103    '5': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition5.ets'), 728],
104    '6': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition6.ets'), 718],
105    '7': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition7.ets'), 683],
106    '8': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition8.ets'), 614],
107    '9': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition9.ets'), 619],
108    '10': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition10.ets'), 712],
109    '11': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition11.ets'), 682],
110    '12': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition12.ets'), 720],
111    '13': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition13.ets'), 658],
112    '14': [resolveTestPath('test/testcases/getCompletionAtPosition/getCompletionsAtPosition14.ets'), 659]
113  },
114  toLineColumnOffset: {
115    expectedFilePath: resolveTestPath('test/expected/toLineColumnOffset.json'),
116    '1': [resolveTestPath('test/testcases/toLineColumnOffset/toLineColumnOffset1.ets'), 0],
117    '2': [resolveTestPath('test/testcases/toLineColumnOffset/toLineColumnOffset1.ets'), 642]
118  },
119  getSpanOfEnclosingComment: {
120    expectedFilePath: resolveTestPath('test/expected/getSpanOfEnclosingComment.json'),
121    '1': [resolveTestPath('test/testcases/getSpanOfEnclosingComment/getSpanOfEnclosingComment1.ets'), 669, false],
122    '2': [resolveTestPath('test/testcases/getSpanOfEnclosingComment/getSpanOfEnclosingComment1.ets'), 663, false],
123    '3': [resolveTestPath('test/testcases/getSpanOfEnclosingComment/getSpanOfEnclosingComment2.ets'), 663, false]
124  },
125  provideInlayHints: {
126    expectedFilePath: resolveTestPath('test/expected/provideInlayHints.json'),
127    '1': [
128      resolveTestPath('test/testcases/provideInlayHints/provideInlayHints1.ets'),
129      { start: 712, length: 11 } as TextSpan
130    ]
131  },
132  getSignatureHelpItems: {
133    expectedFilePath: resolveTestPath('test/expected/getSignatureHelpItems.json'),
134    '1': [resolveTestPath('test/testcases/getSignatureHelpItems/getSignatureHelpItems1.ets'), 613],
135    '2': [resolveTestPath('test/testcases/getSignatureHelpItems/getSignatureHelpItems1.ets'), 620],
136    '3': [resolveTestPath('test/testcases/getSignatureHelpItems/getSignatureHelpItems1.ets'), 678]
137  }
138};
139
140export const getSpanOfEnclosingCommentTests = testCases.getSpanOfEnclosingComment;
141