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