From 31de7e52ab6c263476274424a5430a9644283f2e Mon Sep 17 00:00:00 2001 From: Ian Thomas Date: Tue, 29 Apr 2025 15:42:35 +0100 Subject: [PATCH] Add playwright image comparison tests --- ci/single_example.sh | 3 ++- ci/tests/example.spec.ts | 9 ++++++--- ci/tests/snapshots/initial.png | Bin 0 -> 25214 bytes ci/tests/snapshots/reset.png | Bin 0 -> 25433 bytes ci/tests/snapshots/zoom.png | Bin 0 -> 19657 bytes ci/typescript/create_vanilla_vite.sh | 2 +- .../recipes/typescript/vanilla_vite_recipe.ts | 2 +- typescript/vanilla_vite/README.md | 2 +- 8 files changed, 11 insertions(+), 7 deletions(-) create mode 100644 ci/tests/snapshots/initial.png create mode 100644 ci/tests/snapshots/reset.png create mode 100644 ci/tests/snapshots/zoom.png diff --git a/ci/single_example.sh b/ci/single_example.sh index 5bf70a7..77f5d08 100755 --- a/ci/single_example.sh +++ b/ci/single_example.sh @@ -73,7 +73,8 @@ export default defineConfig({ command: 'npm run serve', url: 'http://localhost:$PORT', reuseExistingServer: !process.env.CI - } + }, + snapshotPathTemplate: '{testDir}/../../../../tests/snapshots/{arg}{ext}' }); EOF diff --git a/ci/tests/example.spec.ts b/ci/tests/example.spec.ts index f2cb6e0..a0368b7 100644 --- a/ci/tests/example.spec.ts +++ b/ci/tests/example.spec.ts @@ -17,7 +17,7 @@ test('loads bokehjs', async ({ page }) => { test('is interactive', async ({ page }) => { await page.goto('/'); - // Take screenshot + await expect(page).toHaveScreenshot('initial.png'); const boxZoom = await page.getByTitle('Box Zoom').click(); const bbox = await page.locator('.bk-CartesianFrame').boundingBox(); @@ -28,9 +28,12 @@ test('is interactive', async ({ page }) => { await page.mouse.move(bbox!.x + bbox!.width*0.8, bbox!.y + bbox!.height*0.8); await page.mouse.up(); await page.waitForTimeout(100); - // Take screenshot + + await expect(page).toHaveScreenshot('zoom.png'); const reset = await page.getByTitle('Reset').click(); await page.waitForTimeout(100); - // Take screenshot + + // Reset image is the same as initial image except for tool selection + await expect(page).toHaveScreenshot('reset.png'); }); diff --git a/ci/tests/snapshots/initial.png b/ci/tests/snapshots/initial.png new file mode 100644 index 0000000000000000000000000000000000000000..9b5d08862ce4d33101685f7e03070616c0ee44f8 GIT binary patch literal 25214 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 HxN_&8r-WEc literal 0 HcmV?d00001 diff --git a/ci/tests/snapshots/reset.png b/ci/tests/snapshots/reset.png new file mode 100644 index 0000000000000000000000000000000000000000..948f17084627cee7fc1c922faba0417806848ec2 GIT binary patch literal 25433 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 literal 0 HcmV?d00001 diff --git a/ci/tests/snapshots/zoom.png b/ci/tests/snapshots/zoom.png new file mode 100644 index 0000000000000000000000000000000000000000..e28cb7cdc3f19664558b117941a32d93974d6b12 GIT binary patch literal 19657 zcmeIaby!vF);_!t(QP0b!9Yrp5D^eWx)cyWV$&tv(%oSa3W$=Df`D{)Dkak0ERdG& zhHuOT+q2Jm&VJ+jzU%kL?|Rqe1yk0XPmX7dd)#A;>Gg+%Fz)Fqr%@;ruE;|{X%q?v zE|0bRb_{;;lZ#@(FDxr*;rpnxCX#6s>MBY^@Sd!F`0SvAv+Vfb#uB=&?5)dlHdfNLlo^%ddHBN`hk29Y;oS1Xn6{F;ZOy4T!=B;H4{eIyRD-M=O&zGub z_ZK3}uV#06ts?nqJ~>e7xa&}dhORgqFr|lDrOj}5o0s0&TZ)(=5t5Tb#(}EnEL>YX zj$EOp&Jk8%F2tizCy)z+V>q{w-~0qO+%Y$Q;Kw?P{GsLeX$|DJJGHeUipH3g(wJ3o zXz@E;ddc!%ek2o=ss+U)JrTxP+}Nn@|J;CSG@471R*&n}VT0yWU9QIlOYdM>k51-X zAuvGNMLj-s3e$6i&07>U@`oJX@$}bHg|S57SIPxTnphWhHV$pDJaxkx5hu*H6n9aZRN0w;+B+b zP9`Ei2J09UsFhcFtbi*SeX%`Wd}grNuD2)~P@v{(;4AexR+bEmbA|=h}8Y+LeowvyWO~ zAlImy?_jIB&}vc|vx4TQ<-L`JMcnE2n!-6O$G&w5mmTcy&_p>ib8u|M1*_d;WON(z z7e03E*pU4w?)$pc@`Ii71j(qhq@)ipt5H9`p=5=0QZCz)-Q{{ezWvRiQm5u9K0atF zA=2^Y-Me>bX!QGX3?+Hi0>Z-jcehr=soS69@oo+|Ep&Ev@@x)2x0-A+x#N?QlY@*B zX2QTQUq=%~!s}cRm?AGS_Kxb&*RNld?YJFR zr>vTJ*ld1wT%eQh=;$cf-<~lvG@PHGXG1%$z!2fe^i&Yv*4X=vA*b}j#ObFe$qL|- z-leppgv@nwWOa2l=-6gYrZ&ZLivS)j8MmU~_QrzQ?aL*lr7G&J%eBj4=v`_ap1p?9 zJI_zzxy~0(Qe3~@?;HzKV}dRlG+?Qzs%rRfcgB}%ezQGle|2jz>h-rlJ9Md5wYOn= zyp63UBFfQWh>Vwqmc;jflYxkBCVhh{NcmT(a~&pB7)0KB9vKo ze|L+^Zr*v+hfT0bn#UAf=2G*9$Ypy~L{idi!3sVPamJr;WU##UDQ0tXJQ+++LmTQfT=8-En_wl82jHT3Y(q^XE}c^M!qVeZKJua&o!awde2) zVZnqx#m7%fCq(hWG9vp^fsIGPWqXT?DlRiqN{SF)ijaztapC19wF0;~m|lgNg0W=r zYb1};eCfu}*2<*YdawRM`9Ya(Pkem5%g%aZ6rZ|OfDbX7T7mh;*i&bTS;Yk9QmifA7wd}5qHaYsrr(7L2)soV#Zb2tlVz3 z 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 VGvWL+4d#Us5t0y0yRY%={{ayuk&plY literal 0 HcmV?d00001 diff --git a/ci/typescript/create_vanilla_vite.sh b/ci/typescript/create_vanilla_vite.sh index 982291b..9d8b0a3 100755 --- a/ci/typescript/create_vanilla_vite.sh +++ b/ci/typescript/create_vanilla_vite.sh @@ -58,7 +58,7 @@ function create_bokehjs_plot(): Bokeh.Plotting.Figure { return plot; } -document.querySelector('#app')!.innerHTML = \`
Hello
\`; +document.querySelector('#app')!.innerHTML = \`
\`; Bokeh.Plotting.show(create_bokehjs_plot(), "#target"); EOF diff --git a/recipes/src/recipes/typescript/vanilla_vite_recipe.ts b/recipes/src/recipes/typescript/vanilla_vite_recipe.ts index 29e7804..e15b514 100644 --- a/recipes/src/recipes/typescript/vanilla_vite_recipe.ts +++ b/recipes/src/recipes/typescript/vanilla_vite_recipe.ts @@ -53,7 +53,7 @@ export class VanillaViteRecipe extends Recipe { baseTypeScriptExample.import + "\n" + baseTypeScriptExample.version + "\n" + baseTypeScriptExample.function + "\n" + - "document.querySelector('#app')!.innerHTML = \\`
Hello
\\`;\n\n" + + "document.querySelector('#app')!.innerHTML = \\`
\\`;\n\n" + baseTypeScriptExample.show() )); diff --git a/typescript/vanilla_vite/README.md b/typescript/vanilla_vite/README.md index 48336be..c5bf7ab 100644 --- a/typescript/vanilla_vite/README.md +++ b/typescript/vanilla_vite/README.md @@ -65,7 +65,7 @@ Create an initial basic project using `create-vite`. return plot; } - document.querySelector('#app')!.innerHTML = `
Hello
`; + document.querySelector('#app')!.innerHTML = `
`; Bokeh.Plotting.show(create_bokehjs_plot(), "#target");