From f8a62a23e59d8a186b5f7cfc1389b1e3d2a2dccb Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Fri, 18 Oct 2019 11:23:11 -0700 Subject: [PATCH] Speed tests up by avoiding page loads --- addons/xterm-addon-fit/src/FitAddon.api.ts | 29 ++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/addons/xterm-addon-fit/src/FitAddon.api.ts b/addons/xterm-addon-fit/src/FitAddon.api.ts index 49d274bc..f9972aef 100644 --- a/addons/xterm-addon-fit/src/FitAddon.api.ts +++ b/addons/xterm-addon-fit/src/FitAddon.api.ts @@ -14,7 +14,7 @@ let page: puppeteer.Page; const width = 1024; const height = 768; -describe('FitAddon', () => { +describe.only('FitAddon', () => { before(async function(): Promise { this.timeout(20000); browser = await puppeteer.launch({ @@ -24,25 +24,25 @@ describe('FitAddon', () => { }); page = (await browser.pages())[0]; await page.setViewport({ width, height }); + await page.goto(APP); + await openTerminal(); }); after(async () => { await browser.close(); }); - beforeEach(async function(): Promise { - this.timeout(20000); - await page.goto(APP); + it('no terminal', async function(): Promise { + await page.evaluate(`window.fit = new FitAddon();`); + assert.equal(await page.evaluate(`window.fit.proposeDimensions()`), undefined); }); describe('proposeDimensions', () => { - it('no terminal', async function(): Promise { - await page.evaluate(`window.fit = new FitAddon();`); - assert.equal(await page.evaluate(`window.fit.proposeDimensions()`), undefined); + afterEach(async () => { + return unloadFit(); }); it('default', async function(): Promise { - await openTerminal(); await loadFit(); assert.deepEqual(await page.evaluate(`window.fit.proposeDimensions()`), { cols: 87, @@ -51,7 +51,6 @@ describe('FitAddon', () => { }); it('width', async function(): Promise { - await openTerminal(); await loadFit(1008); assert.deepEqual(await page.evaluate(`window.fit.proposeDimensions()`), { cols: 110, @@ -60,7 +59,6 @@ describe('FitAddon', () => { }); it('small', async function(): Promise { - await openTerminal(); await loadFit(1, 1); assert.deepEqual(await page.evaluate(`window.fit.proposeDimensions()`), { cols: 2, @@ -70,8 +68,11 @@ describe('FitAddon', () => { }); describe('fit', () => { + afterEach(async () => { + return unloadFit(); + }); + it('default', async function(): Promise { - await openTerminal(); await loadFit(); await page.evaluate(`window.fit.fit()`); assert.equal(await page.evaluate(`window.term.cols`), 87); @@ -79,7 +80,6 @@ describe('FitAddon', () => { }); it('width', async function(): Promise { - await openTerminal(); await loadFit(1008); await page.evaluate(`window.fit.fit()`); assert.equal(await page.evaluate(`window.term.cols`), 110); @@ -87,7 +87,6 @@ describe('FitAddon', () => { }); it('small', async function(): Promise { - await openTerminal(); await loadFit(1, 1); await page.evaluate(`window.fit.fit()`); assert.equal(await page.evaluate(`window.term.cols`), 2); @@ -105,6 +104,10 @@ async function loadFit(width: number = 800, height: number = 450): Promise `); } +async function unloadFit(): Promise { + await page.evaluate(`window.fit.dispose();`); +} + async function openTerminal(options: ITerminalOptions = {}): Promise { await page.evaluate(`window.term = new Terminal(${JSON.stringify(options)})`); await page.evaluate(`window.term.open(document.querySelector('#terminal-container'))`);