const { test, expect } = require('./fixtures/common'); const { Customer } = require('./pom/customer'); const { faker } = require('@faker-js/faker/locale/zh_CN'); for (let i = 0; i < 3; i++) { test(`登录touch和h5,创建顾客购买会员卡,使用顾客账号到h5商城购买货品${i}`, 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); 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(); 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.waitForTimeout(2000); await h5Page.reload(); 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.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 }) .locator('.radio_btn .uni-radio-input') ).toHaveClass(/uni-radio-input-checked/); await expect(h5Page.getByText('确认支付')).toBeEnabled(); await h5Page.getByText('确认支付').click(); await expect(h5Page.getByText('支付成功').first()).toBeVisible(); await expect(h5Page.getByText('查看订单')).toBeVisible(); }); }); }