Skip to content

Commit 9c456dc

Browse files
committed
refactor test codes
1 parent 1c62f72 commit 9c456dc

2 files changed

Lines changed: 29 additions & 21 deletions

File tree

packages/ts-plugin/e2e/completion.test.ts

Lines changed: 5 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,13 @@
11
import { join } from '@css-modules-kit/core';
22
import dedent from 'dedent';
3-
import type ts from 'typescript';
43
import { describe, expect, test } from 'vitest';
54
import { createIFF } from './test/fixture.js';
6-
import { formatPath, launchTsserver } from './test/tsserver.js';
5+
import { compareCompletionEntries, formatPath, launchTsserver, simplifyCompletionEntry } from './test/tsserver.js';
76

87
// eslint-disable-next-line n/no-extraneous-require
98
const reactDtsPath = join(require.resolve('@types/react/package.json'), '../index.d.ts');
109

1110
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-
}
2211
const tsserver = launchTsserver();
2312
const iff = await createIFF({
2413
'a.tsx': dedent`
@@ -97,14 +86,9 @@ describe('Completion', async () => {
9786
offset,
9887
});
9988
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));
10293
});
10394
});
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-
}

packages/ts-plugin/e2e/test/tsserver.ts

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,3 +171,27 @@ export function mergeSpanGroups(fileSpans: ts.server.protocol.FileSpan[]): Simpl
171171
}
172172
return spanGroups;
173173
}
174+
175+
type SimplifiedCompletionEntry = {
176+
name: string;
177+
sortText: string;
178+
source?: string;
179+
insertText?: string;
180+
};
181+
182+
export function simplifyCompletionEntry(
183+
entries: readonly ts.server.protocol.CompletionEntry[],
184+
): SimplifiedCompletionEntry[] {
185+
return entries.map((entry) => {
186+
return {
187+
name: entry.name,
188+
sortText: entry.sortText,
189+
...('source' in entry ? { source: entry.source } : {}),
190+
...('insertText' in entry ? { insertText: entry.insertText } : {}),
191+
};
192+
});
193+
}
194+
195+
export function compareCompletionEntries(a: SimplifiedCompletionEntry, b: SimplifiedCompletionEntry) {
196+
return a.sortText?.localeCompare(b.sortText ?? '') || 0;
197+
}

0 commit comments

Comments
 (0)