74 lines
3.3 KiB
JavaScript
74 lines
3.3 KiB
JavaScript
const { test, expect } = require('./fixtures/common');
|
||
const { Customer } = require('./customer');
|
||
const { faker } = require('@faker-js/faker/locale/zh_CN');
|
||
|
||
// test('has title', async ({ page }) => {
|
||
// await page.goto('https://playwright.dev/');
|
||
|
||
// // Expect a title "to contain" a substring.
|
||
// await expect(page).toHaveTitle(/Playwright/);
|
||
// });
|
||
|
||
// test('get started link', async ({ page }) => {
|
||
// await page.goto('https://playwright.dev/');
|
||
|
||
// // Click the get started link.
|
||
// await page.getByRole('link', { name: 'Get started' }).click();
|
||
|
||
// // Expects page to have a heading with the name of Installation.
|
||
// await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
|
||
// });
|
||
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);
|
||
|
||
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();
|
||
const 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();
|
||
await h5Page.locator('.get_btn').click();
|
||
await h5Page.locator('.back').click();
|
||
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').first().click();
|
||
await h5Page.waitForLoadState();
|
||
await h5Page.getByText('立即购买').click();
|
||
await h5Page
|
||
.locator('.goodsClassBoxMain .footerBug_true_all')
|
||
.filter({ hasText: '确定' })
|
||
.click();
|
||
await h5Page.locator('.mgj-picker-head .mgj-picker-btn').filter({ hasText: '确认' }).click();
|
||
await expect(h5Page.locator('.pay-way .form_row', { hasText: cardName })).toHaveClass(
|
||
/click-able/
|
||
);
|
||
await expect(h5Page.getByText('确认支付')).toBeEnabled();
|
||
await h5Page.getByText('确认支付').click();
|
||
await expect(h5Page.getByText('支付成功').first()).toBeVisible();
|
||
await expect(h5Page.getByText('查看订单')).toBeVisible();
|
||
});
|
||
});
|