Skip to content

Commit f33c0e3

Browse files
committed
fix: test cases
1 parent 86e75f3 commit f33c0e3

File tree

1 file changed

+35
-4
lines changed

1 file changed

+35
-4
lines changed

src/test/index.test.ts

+35-4
Original file line numberDiff line numberDiff line change
@@ -4,26 +4,57 @@ import assert from 'assert'
44

55
const EXTENSION_DIR = path.resolve(__dirname, '..', '..')
66
const TEST_FIXTURE_DIR = path.resolve(EXTENSION_DIR, 'test-fixture')
7+
const DIAGNOSTIC_SOURCE = 'float-pigment-css-analyzer'
78

89
const getUri = (rel: string) => {
910
const absPath = path.resolve(TEST_FIXTURE_DIR, rel)
1011
const uri = vscode.Uri.file(absPath)
1112
return uri
1213
}
1314

14-
const sleep = (ms: number): Promise<void> =>
15+
// const diagChangeCallbacks: ((uris: readonly vscode.Uri[]) => void)[] = []
16+
// vscode.languages.onDidChangeDiagnostics((e) => {
17+
// // eslint-disable-next-line @typescript-eslint/no-floating-promises, promise/catch-or-return
18+
// vscode.window.showInformationMessage('!!!')
19+
// diagChangeCallbacks.forEach((f) => f(e.uris))
20+
// })
21+
const waitDiagnosticsUpdate = (uri: vscode.Uri, source: string): Promise<void> =>
1522
new Promise((resolve) => {
16-
setTimeout(resolve, ms)
23+
const diag = vscode.languages.getDiagnostics(uri).find((diag) => diag.source === source)
24+
if (diag) {
25+
resolve()
26+
return
27+
}
28+
// const cb = (uris: readonly vscode.Uri[]) => {
29+
// if (uris.includes(uri)) {
30+
// const diag = vscode.languages.getDiagnostics(uri).find((diag) => diag.source === source)
31+
// if (diag) {
32+
// const index = diagChangeCallbacks.indexOf(cb)
33+
// diagChangeCallbacks.splice(index, 1)
34+
// resolve()
35+
// }
36+
// }
37+
// }
38+
// diagChangeCallbacks.push(cb)
39+
const cb = () => {
40+
const diag = vscode.languages.getDiagnostics(uri).find((diag) => diag.source === source)
41+
if (diag) {
42+
resolve()
43+
return
44+
}
45+
setTimeout(cb, 100)
46+
}
47+
setTimeout(cb, 100)
1748
})
1849

1950
suite('common', () => {
2051
test('diagnostics for CSS', async () => {
2152
const uri = getUri('components/index.css')
2253
await vscode.window.showTextDocument(uri)
23-
await sleep(1000)
54+
await waitDiagnosticsUpdate(uri, DIAGNOSTIC_SOURCE)
2455
const diagList = vscode.languages
2556
.getDiagnostics(uri)
26-
.filter((diag) => diag.source === 'float-pigment-css-analyzer')
57+
.filter((diag) => diag.source === DIAGNOSTIC_SOURCE)
2758
assert.equal(diagList.length, 1)
2859
})
2960
})

0 commit comments

Comments
 (0)