Skip to content

Commit

Permalink
chore: add test for alias path definition
Browse files Browse the repository at this point in the history
  • Loading branch information
johnsoncodehk committed Jul 16, 2022
1 parent 74f3877 commit 6a2a2f7
Show file tree
Hide file tree
Showing 6 changed files with 56 additions and 0 deletions.
10 changes: 10 additions & 0 deletions packages/vue-language-service/tests/definitions/alias_path.ts
@@ -0,0 +1,10 @@
import * as path from 'upath';
import { Position } from 'vscode-languageserver-protocol';
import { defineDefinition } from '../utils/defineDefinition';

const file = path.resolve(__dirname, '../../../vue-test-workspace/definitions/alias_path/B.vue');

defineDefinition({
fileName: file,
position: Position.create(1, 15),
}, ['/definitions/alias_path/A.vue']);
2 changes: 2 additions & 0 deletions packages/vue-language-service/tests/index.spec.ts
Expand Up @@ -3,6 +3,8 @@ import { defineTypeCheck } from './utils/defineTypeCheck';

import './completions/import_path';

import './definitions/alias_path';

import './renames/prop';
import './renames/typeProp';
import './renames/cssModules';
Expand Down
29 changes: 29 additions & 0 deletions packages/vue-language-service/tests/utils/defineDefinition.ts
@@ -0,0 +1,29 @@
import type * as vscode from 'vscode-languageserver-protocol';
import { describe, expect, it } from 'vitest';
import * as path from 'upath';
import { tester } from './createTester';
import * as shared from '@volar/shared';

const volarRoot = path.resolve(__dirname, '../../../..');

export function defineDefinition(action: {
fileName: string,
position: vscode.Position,
}, expectedResults: string[]) {

const fileName = action.fileName;
const uri = shared.fsPathToUri(fileName);
const location = `${path.relative(volarRoot, fileName)}:${action.position.line + 1}:${action.position.character + 1}`;

describe(`find definition ${path.basename(fileName)} ${location}`, async () => {
const result = await tester.languageService.findDefinition(
uri,
{ line: action.position.line, character: action.position.character },
);
for (const expectedResult of expectedResults) {
it(`has ${expectedResult}`, () => {
expect(result?.some(item => item.targetUri.endsWith(expectedResult))).toEqual(true);
});
}
});
}
1 change: 1 addition & 0 deletions packages/vue-test-workspace/definitions/alias_path/A.vue
@@ -0,0 +1 @@
<script setup lang="ts"></script>
7 changes: 7 additions & 0 deletions packages/vue-test-workspace/definitions/alias_path/B.vue
@@ -0,0 +1,7 @@
<script setup lang="ts">
import A from '@/../definitions/alias_path/A.vue';
</script>

<template>
<A></A>
</template>
7 changes: 7 additions & 0 deletions packages/vue-test-workspace/tsconfig.json
Expand Up @@ -10,9 +10,16 @@
"noUnusedParameters": true,
"skipLibCheck": true,
"jsx": "preserve",
"baseUrl": ".",
"paths": {
"@/": [
"./*"
]
}
},
"include": [
"completions/**/*",
"definitions/**/*",
"renames/**/*",
"typeChecks/**/*",
"typeChecks/**/*.html",
Expand Down

0 comments on commit 6a2a2f7

Please sign in to comment.