Skip to content

Commit e92fa50

Browse files
committed
Fix: test on Linux, 2nd try
1 parent 38487a2 commit e92fa50

File tree

5 files changed

+43
-33
lines changed

5 files changed

+43
-33
lines changed

package.json

+4-2
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,10 @@
6666
"release:prepare": "npm run reset:repo && npm ci && npm run build && npm run lint && npm run test:run",
6767
"reset:chrome": "vite-node ./scripts/clean.ts --relativePath . --recursive --paths .chrome",
6868
"reset:repo": "git clean -f -d -x --exclude=.chrome",
69-
"test": "npm run test:install && vitest --config vitest.config.ts",
70-
"test:run": "npm run test:install && vitest --config vitest.config.ts --run",
69+
"test": "npm run test:install && npm run test:direct",
70+
"test:direct": "vitest --config vitest.config.ts",
71+
"test:run": "npm run test:install && npm run test:direct:run",
72+
"test:direct:run": "vitest --config vitest.config.ts --run",
7173
"test:debug": "npm run test:playwright -- --inspect-brk=20222 --browser --no-file-parallelism",
7274
"test:install": "playwright install --with-deps chromium"
7375
},

packages/wrapper/test/languageClientWrapper.test.ts

+18-23
Original file line numberDiff line numberDiff line change
@@ -4,31 +4,38 @@
44
* ------------------------------------------------------------------------------------------ */
55

66
import { beforeAll, describe, expect, test } from 'vitest';
7-
import { LanguageClientWrapper, type LanguageClientConfig } from 'monaco-editor-wrapper';
7+
import { LanguageClientWrapper } from 'monaco-editor-wrapper';
88
import { initServices } from 'monaco-languageclient/vscode/services';
9-
import { createDefaultLcUnreachableUrlConfig, createDefaultLcWorkerConfig } from './support/helper.js';
9+
import { createDefaultLcUnreachableUrlConfig, createDefaultLcWorkerConfig, createUnreachableWorkerConfig } from './support/helper.js';
1010

1111
describe('Test LanguageClientWrapper', () => {
1212

13+
const worker = new Worker('../workers/langium-server.ts', {
14+
type: 'module',
15+
name: 'Langium LS'
16+
});
17+
1318
beforeAll(async () => {
1419
await initServices({});
1520
});
1621

17-
test('Constructor: no config', async () => {
18-
const languageClientConfig = createDefaultLcWorkerConfig();
22+
test('Constructor: no config', () => {
23+
const languageClientConfig = createDefaultLcWorkerConfig(worker);
1924
const languageClientWrapper = new LanguageClientWrapper({
2025
languageClientConfig
2126
});
22-
expect(languageClientWrapper.haveLanguageClient).toBeTruthy();
27+
expect(languageClientWrapper.haveLanguageClient()).toBeFalsy();
2328
});
2429

2530
test('Dispose: direct worker is cleaned up afterwards', async () => {
26-
const languageClientConfig = createDefaultLcWorkerConfig();
31+
const languageClientConfig = createDefaultLcWorkerConfig(worker);
2732
const languageClientWrapper = new LanguageClientWrapper({
2833
languageClientConfig
2934
});
3035

31-
expect(languageClientWrapper.getWorker()).toBeFalsy();
36+
// setTimeout(async () => {
37+
expect(worker).toBeDefined();
38+
expect(languageClientWrapper.getWorker()).toBeUndefined();
3239

3340
// WA: language client in fails due to vitest (reason not clear, yet)
3441
await expect(async () => {
@@ -40,15 +47,16 @@ describe('Test LanguageClientWrapper', () => {
4047
// dispose & verify
4148
await languageClientWrapper.disposeLanguageClient(true);
4249
expect(languageClientWrapper.getWorker()).toBeUndefined();
50+
// }, 1000);
4351
});
4452

4553
test('Start: unreachable url', async () => {
46-
const languageClientConfig: LanguageClientConfig = createDefaultLcUnreachableUrlConfig();
54+
const languageClientConfig = createDefaultLcUnreachableUrlConfig();
4755
const languageClientWrapper = new LanguageClientWrapper({
4856
languageClientConfig
4957
});
5058

51-
await expect(languageClientWrapper.start()).rejects.toEqual({
59+
await expect(await languageClientWrapper.start()).rejects.toEqual({
5260
message: 'languageClientWrapper (test-ws-unreachable): Websocket connection failed.',
5361
error: 'No error was provided.'
5462
});
@@ -66,20 +74,7 @@ describe('Test LanguageClientWrapper', () => {
6674
});
6775

6876
test('Start: unreachable worker url', async () => {
69-
const languageClientConfig: LanguageClientConfig = {
70-
name: 'test-worker-unreachable',
71-
clientOptions: {
72-
documentSelector: ['javascript']
73-
},
74-
connection: {
75-
options: {
76-
$type: 'WorkerConfig',
77-
url: new URL(`${import.meta.url.split('@fs')[0]}/packages/wrapper/test/worker/langium-server.ts`),
78-
type: 'module'
79-
}
80-
}
81-
};
82-
77+
const languageClientConfig = createUnreachableWorkerConfig();
8378
const languageClientWrapper = new LanguageClientWrapper({
8479
languageClientConfig
8580
});

packages/wrapper/test/support/helper.ts

+19-6
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ export const createWrapperConfigExtendedApp = (): WrapperConfig => {
3232
};
3333
};
3434

35-
export const createDefaultLcWorkerConfig = (): LanguageClientConfig => {
35+
export const createDefaultLcWorkerConfig = (worker: Worker): LanguageClientConfig => {
3636
return {
3737
name: 'test-worker-direct',
3838
clientOptions: {
@@ -42,10 +42,23 @@ export const createDefaultLcWorkerConfig = (): LanguageClientConfig => {
4242
options: {
4343
$type: 'WorkerDirect',
4444
// create a web worker to pass to the wrapper
45-
worker: new Worker('./worker/langium-server.ts', {
46-
type: 'module',
47-
name: 'Langium LS'
48-
})
45+
worker
46+
}
47+
}
48+
};
49+
};
50+
51+
export const createUnreachableWorkerConfig = (): LanguageClientConfig => {
52+
return {
53+
name: 'test-worker-unreachable',
54+
clientOptions: {
55+
documentSelector: ['javascript']
56+
},
57+
connection: {
58+
options: {
59+
$type: 'WorkerConfig',
60+
url: new URL(`${import.meta.url.split('@fs')[0]}/packages/wrapper/test/worker/langium-server.ts`),
61+
type: 'module'
4962
}
5063
}
5164
};
@@ -61,7 +74,7 @@ export const createDefaultLcUnreachableUrlConfig = (): LanguageClientConfig => {
6174
options: {
6275
$type: 'WebSocketUrl',
6376
url: 'ws://localhost:12345/Tester'
64-
}
77+
},
6578
}
6679
};
6780
};

packages/wrapper/test/wrapper.test.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ describe('Test MonacoEditorLanguageClientWrapper', () => {
230230

231231
// delay execution to prevent error being thrown from monaco api (internal clean-up)
232232
setTimeout(async () => {
233-
expect(await wrapper.start(htmlContainer)).toBeUndefined();
233+
await expect(await wrapper.start(htmlContainer)).toBeUndefined();
234234
}, 100);
235235
});
236236
});

vitest.config.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import definedViteConfig from './vite.config.js';
1111

1212
export const vitestConfig = {
1313
test: {
14-
testTimeout: 20000,
14+
testTimeout: 25000,
1515
browser: {
1616
enabled: true,
1717
headless: true,

0 commit comments

Comments
 (0)