diff --git a/test/api/Terminal.api.ts b/test/api/Terminal.api.ts index 81eaada2..dcaea33e 100644 --- a/test/api/Terminal.api.ts +++ b/test/api/Terminal.api.ts @@ -34,7 +34,7 @@ describe('API Integration Tests', function(): void { // fails with the grapheme injection, not sure why... it('Proposed API check', async () => { - await openTerminal(page, { allowProposedApi: false }); + await openTerminal(page, { allowProposedApi: false }, { loadUnicodeGraphemesAddon: false }); await page.evaluate(` try { window.term.markers; diff --git a/test/api/TestUtils.ts b/test/api/TestUtils.ts index 220bd42c..387eb322 100644 --- a/test/api/TestUtils.ts +++ b/test/api/TestUtils.ts @@ -43,18 +43,18 @@ export async function timeout(ms: number): Promise { return new Promise(r => setTimeout(r, ms)); } -export async function openTerminal(page: playwright.Page, options: ITerminalOptions & ITerminalInitOnlyOptions = {}): Promise { +export async function openTerminal(page: playwright.Page, options: ITerminalOptions & ITerminalInitOnlyOptions = {}, testOptions: any = { loadUnicodeGraphemesAddon: true}): Promise { await page.evaluate(`window.term = new Terminal(${JSON.stringify({ allowProposedApi: true, ...options })})`); await page.evaluate(`window.term.open(document.querySelector('#terminal-container'))`); - /* - // TODO: make this injection configurable from outside - await page.evaluate(` - window.unicode = new UnicodeGraphemesAddon(); - window.term.loadAddon(window.unicode); - window.term.unicode.activeVersion = '15-graphemes'; - `); -*/ + // See https://github.com/xtermjs/xterm.js/pull/4519#discussion_r1285234453 + if (testOptions.loadUnicodeGraphemesAddon) { + await page.evaluate(` + window.unicode = new UnicodeGraphemesAddon(); + window.term.loadAddon(window.unicode); + window.term.unicode.activeVersion = '15-graphemes'; + `); + } await page.waitForSelector('.xterm-rows'); }