11// npx playwright test asset-basic-transform.spec.ts --debug
22
33import { test , expect } from '@playwright/test'
4- import path from 'path'
5- import { fileURLToPath } from 'url'
6-
7- const __dirname = path . dirname ( fileURLToPath ( import . meta. url ) )
8- const PAGE_WIDTH = 1000
9- const PAGE_HEIGHT = 700
10- const center = { x : PAGE_WIDTH / 2 , y : PAGE_HEIGHT / 2 }
4+ import * as Utils from '../utils'
115
126test ( 'asset performs basic transformations' , async ( { page } , testinfo ) => {
137 if ( process . env . CI ) {
@@ -17,56 +11,54 @@ test('asset performs basic transformations', async ({ page }, testinfo) => {
1711
1812 testinfo . snapshotSuffix = '' // by default is `process.platform`
1913
20- // and it produces different screenshot name base on operating system
21- // while we want to make app consistent on all operating systems
22-
23- // To finally check if WebGPU is supported
24- // await page.goto('https://webgpureport.org/');
25- // await expect(page).toHaveScreenshot('webgpu-report.png');
26-
27- await page . setViewportSize ( { width : PAGE_WIDTH , height : PAGE_HEIGHT } )
28- await page . goto ( '/' )
29- await page . waitForLoadState ( 'networkidle' )
30- await page . evaluate ( ( ) =>
31- window . addEventListener ( 'mousemove' , ( e ) => console . log ( e . clientX , e . clientY ) )
32- ) // to display cursor position during debugging
33- // helps to copy position here
34-
35- /** =========PNG IMAGE UPLOAD============ */
36- const fileInput = page . locator ( 'input[type="file"]' )
37- const testImagePath = path . join ( __dirname , '../image-sample.png' )
38- await fileInput . setInputFiles ( testImagePath )
39-
14+ await Utils . init ( page )
15+ await Utils . uploadAsset ( page )
4016 const canvas = page . locator ( 'canvas' )
4117
4218 // select asset
43- await page . mouse . move ( center . x , center . y )
19+ await page . mouse . move ( 550 , 275 )
4420 await page . mouse . down ( )
4521 await page . mouse . up ( )
4622
4723 // move
4824 await page . mouse . down ( )
49- await page . mouse . move ( 300 , 300 )
25+ await page . mouse . move ( 650 , 230 )
5026 await page . mouse . up ( )
5127 await expect ( canvas ) . toHaveScreenshot ( 'move-image.png' )
5228
5329 // rotate
30+ await page . mouse . move ( 650 , 645 )
5431 await page . mouse . down ( )
55- await page . mouse . move ( 573 , 533 )
32+ await page . mouse . move ( 430 , 570 )
5633 await page . mouse . up ( )
5734 await expect ( canvas ) . toHaveScreenshot ( 'rotate-image.png' )
5835
5936 // scale with top middle handler
37+ await page . mouse . move ( 830 , 90 )
6038 await page . mouse . down ( )
61- await page . mouse . move ( 320 , 264 )
39+ await page . mouse . move ( 700 , 240 )
6240 await page . mouse . up ( )
6341 await expect ( canvas ) . toHaveScreenshot ( 'use-top-scale-ui.png' )
6442
65- // TODO: do rotation test
43+ // scale with top middle handler, reflect by x axis
44+
45+ await page . mouse . move ( 470 , 520 )
46+ await page . mouse . down ( )
47+ await page . mouse . move ( 845 , 70 )
48+ await page . mouse . up ( )
49+ await expect ( canvas ) . toHaveScreenshot ( 'reflect-x-via-top-scale-ui.png' )
50+
51+ // rotate after vertical reflection(was issue in the past)
52+ await page . mouse . move ( 880 , 30 )
53+ await page . mouse . down ( )
54+ await page . mouse . move ( 773 , 332 )
55+ await page . mouse . up ( )
56+ await expect ( canvas ) . toHaveScreenshot ( 'rotate-after-reflect-x.png' )
6657
67- // scale with top left andler
58+ // scale with top right andler
59+ await page . mouse . move ( 980 , 50 )
6860 await page . mouse . down ( )
69- await page . mouse . move ( 950 , 400 )
61+ await page . mouse . move ( 170 , 530 )
7062 await page . mouse . up ( )
71- await expect ( canvas ) . toHaveScreenshot ( 'use-top-left -scale-ui.png' )
63+ await expect ( canvas ) . toHaveScreenshot ( 'use-top-right -scale-ui.png' )
7264} )
0 commit comments