diff --git a/packages/monaco-editor-wrapper/test/editorAppExtended.test.ts b/packages/monaco-editor-wrapper/test/editorAppExtended.test.ts index 251191c..60466c6 100644 --- a/packages/monaco-editor-wrapper/test/editorAppExtended.test.ts +++ b/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', () => { @@ -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'; diff --git a/packages/monaco-editor-wrapper/test/helper.ts b/packages/monaco-editor-wrapper/test/helper.ts index 765e661..8d24d3a 100644 --- a/packages/monaco-editor-wrapper/test/helper.ts +++ b/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'); @@ -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; +}; diff --git a/packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts b/packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts index 73b2520..13dbbfb 100644 --- a/packages/monaco-editor-wrapper/test/languageClientWrapper.test.ts +++ b/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(); @@ -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(); @@ -53,7 +46,6 @@ describe('Test LanguageClientWrapper', () => { }); // setup the wrapper - const wrapper = new MonacoEditorLanguageClientWrapper(); const config = createBaseConfig('extended'); config.languageClientConfig = { options: { @@ -61,7 +53,7 @@ describe('Test LanguageClientWrapper', () => { worker } }; - await wrapper.init(config); + const wrapper = await createWrapper(config); const languageClientWrapper = wrapper.getLanguageClientWrapper(); expect(languageClientWrapper).toBeDefined(); @@ -77,7 +69,6 @@ describe('Test LanguageClientWrapper', () => { }); test('Constructor: config', async () => { - const wrapper = new MonacoEditorLanguageClientWrapper(); const config = createBaseConfig('extended'); config.languageClientConfig = { options: { @@ -85,7 +76,7 @@ describe('Test LanguageClientWrapper', () => { url: 'ws://localhost:12345/Tester' } }; - await wrapper.init(config); + const wrapper = await createWrapper(config); const languageClientWrapper = wrapper.getLanguageClientWrapper(); expect(languageClientWrapper).toBeDefined(); @@ -94,7 +85,6 @@ describe('Test LanguageClientWrapper', () => { }); test('Start: unreachable url', async () => { - const wrapper = new MonacoEditorLanguageClientWrapper(); const config = createBaseConfig('extended'); config.languageClientConfig = { options: { @@ -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(); @@ -127,7 +117,6 @@ describe('Test LanguageClientWrapper', () => { }); test('Start: unreachable worker url', async () => { - const wrapper = new MonacoEditorLanguageClientWrapper(); const config = createBaseConfig('extended'); config.languageClientConfig = { options: { @@ -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(); diff --git a/vite.config.ts b/vite.config.ts index fdbb0ac..b5cabe4 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -68,8 +68,7 @@ export default defineConfig(() => { pool: 'threads', poolOptions: { threads: { - minThreads: 1, - maxThreads: 1 + isolate: true } }, browser: {