testFixture.ts
1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
import { test as base, Page } from '@playwright/test';
import { LoginPage } from '../pages/loginPage';
import { ProductPage } from '../pages/productPage';
import { SalePage } from '../pages/salePage';
import { ConsignmentPage } from '../pages/consignmentPage';
/**
* 页面对象夹具类型定义
*/
export type PageFixtures = {
/**
* 登录页面
*/
loginPage: LoginPage;
/**
* 商品管理页面
*/
productPage: ProductPage;
/**
* 销售开单页面
*/
salePage: SalePage;
/**
* 代销入库页面
*/
consignmentPage: ConsignmentPage;
};
/**
* 扩展的测试对象,包含所有页面对象夹具
*/
export const test = base.extend<PageFixtures>({
// 登录页面
loginPage: async ({ page }, use) => {
await use(new LoginPage(page));
},
// 商品管理页面
productPage: async ({ page }, use) => {
await use(new ProductPage(page));
},
// 销售开单页面
salePage: async ({ page }, use) => {
await use(new SalePage(page));
},
// 代销入库页面
consignmentPage: async ({ page }, use) => {
await use(new ConsignmentPage(page));
},
});
/**
* 导出 expect 以便在测试中使用
*/
export { expect } from '@playwright/test';
/**
* 创建一个同时包含认证和页面对象的完整测试夹具
*/
import { test as authTest } from './authFixture';
type FullFixtures = PageFixtures & {
authenticatedPage: Page;
authFilePath: string;
};
export const fullTest = authTest.extend<PageFixtures>({
loginPage: async ({ authenticatedPage }, use) => {
await use(new LoginPage(authenticatedPage));
},
productPage: async ({ authenticatedPage }, use) => {
await use(new ProductPage(authenticatedPage));
},
salePage: async ({ authenticatedPage }, use) => {
await use(new SalePage(authenticatedPage));
},
consignmentPage: async ({ authenticatedPage }, use) => {
await use(new ConsignmentPage(authenticatedPage));
},
});