From 66cfdc59f7e6cbc796a2d36657ac52e78884be11 Mon Sep 17 00:00:00 2001 From: Mauricio Poppe Date: Sat, 26 Oct 2024 19:14:03 -0400 Subject: [PATCH] Add a test to check the in-place update feature. --- ...he-graph-using-multiple-renders-1-snap.png | Bin 0 -> 40595 bytes ...he-graph-using-multiple-renders-2-snap.png | Bin 0 -> 37162 bytes test/e2e/graphs.test.ts | 36 +++++++++++++++--- 3 files changed, 30 insertions(+), 6 deletions(-) create mode 100644 test/e2e/__image_snapshots__/graphs-test-ts-function-plot-update-the-graph-using-multiple-renders-1-snap.png create mode 100644 test/e2e/__image_snapshots__/graphs-test-ts-function-plot-update-the-graph-using-multiple-renders-2-snap.png diff --git a/test/e2e/__image_snapshots__/graphs-test-ts-function-plot-update-the-graph-using-multiple-renders-1-snap.png b/test/e2e/__image_snapshots__/graphs-test-ts-function-plot-update-the-graph-using-multiple-renders-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..1d20309cd574cfbbbfae829fa678282840258246 GIT binary patch literal 40595 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

O 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 b16jhFlzsCaKUF)rukNU-yvDp**6R8KGXhyb literal 0 HcmV?d00001 diff --git a/test/e2e/graphs.test.ts b/test/e2e/graphs.test.ts index 218965c..5cb6a82 100644 --- a/test/e2e/graphs.test.ts +++ b/test/e2e/graphs.test.ts @@ -13,18 +13,17 @@ const matchSnapshotConfig = { } describe('Function Plot', () => { - let page: any - - beforeAll(async () => { - const browser = await puppeteer.launch() - page = await browser.newPage() + async function getPage() { + const browser = await puppeteer.launch({ headless: 'new' }) + const page = await browser.newPage() await page.setViewport({ width: 1000, height: 1000, deviceScaleFactor: 2 }) await page.goto('http://localhost:4444/jest-function-plot.html') - }) + return page + } function stripWrappingFunction(fnString: string) { fnString = fnString.replace(/^\s*function\s*\(\)\s*\{/, '') @@ -34,6 +33,7 @@ describe('Function Plot', () => { snippets.forEach((snippet) => { it(snippet.testName, async () => { + const page = await getPage() await page.evaluate(stripWrappingFunction(snippet.fn.toString())) // When a function that's evaluated asynchronously runs // it's possible that the rendering didn't happen yet. @@ -50,4 +50,28 @@ describe('Function Plot', () => { expect(image).toMatchImageSnapshot(matchSnapshotConfig) }) }) + + it('update the graph using multiple renders', async () => { + const page = await getPage() + const firstRender = ` + const dualRender = { + target: '#playground', + data: [{ fn: 'x^2', graphType: 'polyline' }] + } + functionPlot(dualRender) + ` + await page.evaluate(firstRender.toString()) + const firstImage = await page.screenshot() + // @ts-ignore + expect(firstImage).toMatchImageSnapshot(matchSnapshotConfig) + + const secondRender = ` + dualRender.data[0].fn = 'x' + functionPlot(dualRender) + ` + await page.evaluate(secondRender.toString()) + const secondImage = await page.screenshot() + // @ts-ignore + expect(secondImage).toMatchImageSnapshot(matchSnapshotConfig) + }) })