11// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22// SPDX-License-Identifier: Apache-2.0
33
4- import { BasePageObject } from "@cloudscape-design/browser-test-tools/page-objects" ;
4+ import { BasePageObject , ScreenshotPageObject } from "@cloudscape-design/browser-test-tools/page-objects" ;
55import useBrowser from "@cloudscape-design/browser-test-tools/use-browser" ;
66
7- export function setupTest < P extends BasePageObject & { init ?( ) : Promise < void > } > (
8- url : string ,
7+ export function setupTest ( url : string , test : ( page : ChartPageObject ) => Promise < void > ) {
8+ return setupTestBase ( ChartPageObject , url , test ) ;
9+ }
10+
11+ export function setupScreenshotTest ( url : string , test : ( page : ScreenshotPageObject ) => Promise < void > ) {
12+ return setupTestBase ( ScreenshotPageObject , url , test ) ;
13+ }
14+
15+ function setupTestBase < P extends BasePageObject & { init ?( ) : Promise < void > } > (
916 PageClass : new ( browser : WebdriverIO . Browser ) => P ,
17+ url : string ,
1018 test : ( page : P ) => Promise < void > ,
1119) {
1220 return useBrowser ( { } , async ( browser ) => {
@@ -22,3 +30,48 @@ export function setupTest<P extends BasePageObject & { init?(): Promise<void> }>
2230 await test ( page ) ;
2331 } ) ;
2432}
33+
34+ class ChartPageObject extends BasePageObject {
35+ async moveCursorTo ( x : number , y : number ) {
36+ await this . browser . performActions ( [
37+ {
38+ type : "pointer" ,
39+ id : "event" ,
40+ parameters : { pointerType : "mouse" } ,
41+ actions : [
42+ { type : "pointerMove" , duration : 100 , origin : "viewport" , x, y } ,
43+ { type : "pause" , duration : 150 } ,
44+ ] ,
45+ } ,
46+ ] ) ;
47+ }
48+
49+ async moveCursorBy ( xOffset : number , yOffset : number ) {
50+ await this . browser . performActions ( [
51+ {
52+ type : "pointer" ,
53+ id : "event" ,
54+ parameters : { pointerType : "mouse" } ,
55+ actions : [
56+ { type : "pointerMove" , duration : 100 , origin : "pointer" , x : xOffset , y : yOffset } ,
57+ { type : "pause" , duration : 150 } ,
58+ ] ,
59+ } ,
60+ ] ) ;
61+ }
62+
63+ async clickHere ( ) {
64+ await this . browser . performActions ( [
65+ {
66+ type : "pointer" ,
67+ id : "event" ,
68+ parameters : { pointerType : "mouse" } ,
69+ actions : [
70+ { type : "pointerDown" , origin : "pointer" , button : 0 , duration : 20 } ,
71+ { type : "pointerUp" , origin : "pointer" , button : 0 , duration : 20 } ,
72+ { type : "pause" , duration : 150 } ,
73+ ] ,
74+ } ,
75+ ] ) ;
76+ }
77+ }
0 commit comments