|
1 | 1 | import { join } from '@css-modules-kit/core'; |
2 | 2 | import dedent from 'dedent'; |
3 | | -import type ts from 'typescript'; |
4 | 3 | import { describe, expect, test } from 'vitest'; |
5 | 4 | import { createIFF } from './test/fixture.js'; |
6 | | -import { formatPath, launchTsserver } from './test/tsserver.js'; |
| 5 | +import { compareCompletionEntries, formatPath, launchTsserver, simplifyCompletionEntry } from './test/tsserver.js'; |
7 | 6 |
|
8 | 7 | // eslint-disable-next-line n/no-extraneous-require |
9 | 8 | const reactDtsPath = join(require.resolve('@types/react/package.json'), '../index.d.ts'); |
10 | 9 |
|
11 | 10 | describe('Completion', async () => { |
12 | | - function simplifyEntry(entries: readonly ts.server.protocol.CompletionEntry[]) { |
13 | | - return entries.map((entry) => { |
14 | | - return { |
15 | | - name: entry.name, |
16 | | - sortText: entry.sortText, |
17 | | - ...('source' in entry ? { source: entry.source } : {}), |
18 | | - ...('insertText' in entry ? { insertText: entry.insertText } : {}), |
19 | | - }; |
20 | | - }); |
21 | | - } |
22 | 11 | const tsserver = launchTsserver(); |
23 | 12 | const iff = await createIFF({ |
24 | 13 | 'a.tsx': dedent` |
@@ -97,14 +86,9 @@ describe('Completion', async () => { |
97 | 86 | offset, |
98 | 87 | }); |
99 | 88 | expect( |
100 | | - simplifyEntry(res.body?.entries.filter((entry) => entry.name === entryName) ?? []).sort(compareEntries), |
101 | | - ).toStrictEqual(expected.sort(compareEntries)); |
| 89 | + simplifyCompletionEntry(res.body?.entries.filter((entry) => entry.name === entryName) ?? []).sort( |
| 90 | + compareCompletionEntries, |
| 91 | + ), |
| 92 | + ).toStrictEqual(expected.sort(compareCompletionEntries)); |
102 | 93 | }); |
103 | 94 | }); |
104 | | - |
105 | | -function compareEntries( |
106 | | - a: Partial<ts.server.protocol.CompletionEntry>, |
107 | | - b: Partial<ts.server.protocol.CompletionEntry>, |
108 | | -) { |
109 | | - return a.sortText?.localeCompare(b.sortText ?? '') || 0; |
110 | | -} |
0 commit comments