Skip to content
This repository has been archived by the owner on Mar 22, 2024. It is now read-only.

Commit

Permalink
Fix broken init of EditorAppExtended
Browse files Browse the repository at this point in the history
  • Loading branch information
kaisalmen committed Dec 8, 2023
1 parent 4a547a2 commit 2cdbc51
Show file tree
Hide file tree
Showing 4 changed files with 33 additions and 39 deletions.
21 changes: 3 additions & 18 deletions packages/monaco-editor-wrapper/test/editorAppExtended.test.ts
@@ -1,22 +1,7 @@
import { describe, expect, test } from 'vitest';
import { EditorAppConfigExtended, EditorAppExtended, UserConfig, verifyUrlorCreateDataUrl } from 'monaco-editor-wrapper';
import { EditorAppConfigExtended, EditorAppExtended, verifyUrlorCreateDataUrl } from 'monaco-editor-wrapper';
import { createBaseConfig, createEditorAppConfig } from './helper.js';

/**
* WA: Create an instance for testing that does not specify any additional services.
*
* Prevents:
* Error: Unable to load extension-file://vscode.theme-defaults/themes/light_modern.json:
* Unable to read file 'extension-file://vscode.theme-defaults/themes/light_modern.json' (TypeError: Failed to fetch)
*/
const createExtendedApp = (name: string, userConfig: UserConfig) => {
const app = new EditorAppExtended(name, userConfig);
app.specifyServices = () => {
return {};
};
return app;
};

describe('Test EditorAppExtended', () => {

test('verifyUrlorCreateDataUrl: url', () => {
Expand All @@ -36,14 +21,14 @@ describe('Test EditorAppExtended', () => {
appConfig.userConfiguration = {
json: '{ "editor.semanticHighlighting.enabled": true }'
};
const app = createExtendedApp('config defaults', config);
const app = new EditorAppExtended('config defaults', config);
expect(app.getConfig().userConfiguration?.json).toEqual('{ "editor.semanticHighlighting.enabled": true }');
});

test('isAppConfigDifferent: basic', () => {
const orgConfig = createEditorAppConfig('extended') as EditorAppConfigExtended;
const config = createEditorAppConfig('extended') as EditorAppConfigExtended;
const app = createExtendedApp('test', createBaseConfig('extended'));
const app = new EditorAppExtended('test', createBaseConfig('extended'));
expect(app.isAppConfigDifferent(orgConfig, config, false)).toBeFalsy();

config.code = 'test';
Expand Down
23 changes: 22 additions & 1 deletion packages/monaco-editor-wrapper/test/helper.ts
@@ -1,4 +1,4 @@
import { UserConfig, EditorAppType } from 'monaco-editor-wrapper';
import { UserConfig, EditorAppType, EditorAppExtended, MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper';

export const createMonacoEditorDiv = () => {
const div = document.createElement('div');
Expand Down Expand Up @@ -26,3 +26,24 @@ export const createEditorAppConfig = (type: EditorAppType) => {
useDiffEditor: false,
};
};

export const updateExtendedAppPrototyp = () => {
EditorAppExtended.prototype.specifyServices = () => {
console.log('Using overriden EditorAppExtended.prototype.specifyServices');
return {};
};
};

/**
* WA: Create an instance for testing that does not specify any additional services.
*
* Prevents:
* Error: Unable to load extension-file://vscode.theme-defaults/themes/light_modern.json:
* Unable to read file 'extension-file://vscode.theme-defaults/themes/light_modern.json' (TypeError: Failed to fetch)
*/
export const createWrapper = async (userConfig: UserConfig) => {
updateExtendedAppPrototyp();
const wrapper = new MonacoEditorLanguageClientWrapper();
await wrapper.init(userConfig);
return wrapper;
};
25 changes: 7 additions & 18 deletions packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts
@@ -1,16 +1,10 @@
import { describe, expect, test } from 'vitest';
import { MonacoEditorLanguageClientWrapper } from 'monaco-editor-wrapper';
import { createBaseConfig } from './helper.js';

// if (!window.MonacoEnvironment) {
// window.MonacoEnvironment = {};
// }
import { createBaseConfig, createWrapper } from './helper.js';

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

test('Not Running after construction', async () => {
const wrapper = new MonacoEditorLanguageClientWrapper();
await wrapper.init(createBaseConfig('extended'));
const wrapper = await createWrapper(createBaseConfig('extended'));

const languageClientWrapper = wrapper.getLanguageClientWrapper();
expect(languageClientWrapper).toBeDefined();
Expand All @@ -21,8 +15,7 @@ describe('Test LanguageClientWrapper', () => {
});

test('Constructor: no config', async () => {
const wrapper = new MonacoEditorLanguageClientWrapper();
await wrapper.init(createBaseConfig('extended'));
const wrapper = await createWrapper(createBaseConfig('extended'));

const languageClientWrapper = wrapper.getLanguageClientWrapper();
expect(languageClientWrapper).toBeDefined();
Expand Down Expand Up @@ -53,15 +46,14 @@ describe('Test LanguageClientWrapper', () => {
});

// setup the wrapper
const wrapper = new MonacoEditorLanguageClientWrapper();
const config = createBaseConfig('extended');
config.languageClientConfig = {
options: {
$type: 'WorkerDirect',
worker
}
};
await wrapper.init(config);
const wrapper = await createWrapper(config);

const languageClientWrapper = wrapper.getLanguageClientWrapper();
expect(languageClientWrapper).toBeDefined();
Expand All @@ -77,15 +69,14 @@ describe('Test LanguageClientWrapper', () => {
});

test('Constructor: config', async () => {
const wrapper = new MonacoEditorLanguageClientWrapper();
const config = createBaseConfig('extended');
config.languageClientConfig = {
options: {
$type: 'WebSocketUrl',
url: 'ws://localhost:12345/Tester'
}
};
await wrapper.init(config);
const wrapper = await createWrapper(config);

const languageClientWrapper = wrapper.getLanguageClientWrapper();
expect(languageClientWrapper).toBeDefined();
Expand All @@ -94,7 +85,6 @@ describe('Test LanguageClientWrapper', () => {
});

test('Start: unreachable url', async () => {
const wrapper = new MonacoEditorLanguageClientWrapper();
const config = createBaseConfig('extended');
config.languageClientConfig = {
options: {
Expand All @@ -103,7 +93,7 @@ describe('Test LanguageClientWrapper', () => {
name: 'test-unreachable'
}
};
await wrapper.init(config);
const wrapper = await createWrapper(config);

const languageClientWrapper = wrapper.getLanguageClientWrapper();
expect(languageClientWrapper).toBeDefined();
Expand All @@ -127,7 +117,6 @@ describe('Test LanguageClientWrapper', () => {
});

test('Start: unreachable worker url', async () => {
const wrapper = new MonacoEditorLanguageClientWrapper();
const config = createBaseConfig('extended');
config.languageClientConfig = {
options: {
Expand All @@ -136,7 +125,7 @@ describe('Test LanguageClientWrapper', () => {
type: 'classic'
}
};
await wrapper.init(config);
const wrapper = await createWrapper(config);

const languageClientWrapper = wrapper.getLanguageClientWrapper();
expect(languageClientWrapper).toBeDefined();
Expand Down
3 changes: 1 addition & 2 deletions vite.config.ts
Expand Up @@ -68,8 +68,7 @@ export default defineConfig(() => {
pool: 'threads',
poolOptions: {
threads: {
minThreads: 1,
maxThreads: 1
isolate: true
}
},
browser: {
Expand Down

0 comments on commit 2cdbc51

Please sign in to comment.