From 3bfe5d86c0e93534a4a1ff562b431bea87c95320 Mon Sep 17 00:00:00 2001 From: Per Bothner Date: Wed, 9 Aug 2023 14:44:45 -0700 Subject: [PATCH] Add testOptions parameter to openTerminal in TestUtils. This is used to control whether the UnicodeGraphemesAddon is loaded. --- test/api/Terminal.api.ts | 2 +- test/api/TestUtils.ts | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) 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'); }