Some checks are pending
Playwright Tests / test (push) Waiting to run
init test test test 划分美管加、慧来客、智荟宝项目 新增美管加demo 新增npm命令 测试智荟宝 test test ii csv test init test test init init
61 lines
2.9 KiB
JavaScript
61 lines
2.9 KiB
JavaScript
const { test, expect } = require('./fixtures/common');
|
||
const { Customer } = require('./pom/customer');
|
||
const { faker } = require('@faker-js/faker/locale/zh_CN');
|
||
|
||
test('登录touch和h5,创建顾客购买会员卡,使用顾客账号到h5商城购买货品', async ({
|
||
touchPage,
|
||
h5Page,
|
||
touchCustomerPage,
|
||
h5LoginPage,
|
||
}) => {
|
||
const phone = faker.helpers.fromRegExp(/1[3-9][0-1]{9}/);
|
||
const customer = new Customer(1, 1, { phone: phone });
|
||
|
||
await touchCustomerPage.createCustomer(customer);
|
||
/** @type string*/
|
||
let cardName;
|
||
await test.step('在touch页面购买会员卡', async () => {
|
||
await touchPage.getByText('去开单').click();
|
||
await touchPage.locator('.more > .icon > svg').click();
|
||
await touchPage.getByText('去开卡').click();
|
||
const $firstCard = touchPage.locator('.memberCard_box').first();
|
||
await $firstCard.click();
|
||
cardName = await $firstCard.locator('.card_name').innerText();
|
||
await touchPage.getByRole('button', { name: '去结算' }).click();
|
||
await touchPage.locator('.row').filter({ hasText: '总额' }).locator('.touchIcon').click();
|
||
await touchPage.getByPlaceholder('请输入内容').fill('1000');
|
||
await touchPage.locator('div').filter({ hasText: /^789$/ }).getByRole('button').nth(3).click();
|
||
await touchPage.locator('.paymentInfoItem', { hasText: '现金' }).click();
|
||
await touchPage.getByText('推送消费提醒').click();
|
||
await touchPage.getByLabel('结算签字').uncheck();
|
||
await touchPage.getByRole('button', { name: /结\s算/ }).click();
|
||
await touchPage.getByRole('button', { name: /跳\s过/ }).click();
|
||
});
|
||
|
||
await test.step('登录h5,并且商城页面使用会员卡进行购买', async () => {
|
||
await h5LoginPage.login(customer.phone);
|
||
await h5Page.locator('.singIn_content > .iconfont').click();
|
||
const element = h5Page.locator('.coupon_content');
|
||
const boundingBox = await element.boundingBox();
|
||
|
||
if (boundingBox) {
|
||
const x = boundingBox.x + boundingBox.width / 2; // 元素水平中心
|
||
const y = boundingBox.y - 10; // 元素上侧空白区域
|
||
|
||
await h5Page.mouse.click(x, y);
|
||
}
|
||
await h5Page.locator('.bar_item', { hasText: '商城' }).click();
|
||
await expect(h5Page.locator('.title', { hasText: '商城' })).toBeVisible();
|
||
await h5Page.locator('.li span', { hasText: '全部' }).click();
|
||
await h5Page.locator('.p-item').nth(2).click();
|
||
await h5Page.getByText('立即购买').click();
|
||
await h5Page.locator('uni-text').filter({ hasText: '佘山二店' }).click();
|
||
await h5Page.getByText('确认').click();
|
||
await h5Page.getByText('哎哟代理卡').click();
|
||
await expect(h5Page.getByText('确认支付')).toBeEnabled();
|
||
await h5Page.getByText('确认支付').click();
|
||
await expect(h5Page.getByText('支付成功').first()).toBeVisible();
|
||
await expect(h5Page.getByText('查看订单')).toBeVisible();
|
||
});
|
||
});
|