| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- /**
- * ================================================================
- * 场景:会员体系全流程 E2E 测试
- * ================================================================
- * 用户故事:用户购买/试用会员,管理员配置会员费用
- *
- * 流程步骤:
- * 1. 查看会员等级
- * 2. 购买会员
- * 3. 领取试用会员
- *
- * 关键里程碑:
- * - [Milestone-1] 会员激活成功
- * ================================================================
- *
- * 运行:npx playwright test tests/e2e/membership-system.spec.js
- */
- const { test, expect } = require('@playwright/test');
- test.describe('【场景流程】会员体系全流程', () => {
- // ===== 场景1:查看会员等级 =====
- test('[场景1] 查看会员等级 - 期望返回等级列表', async ({ page }) => {
- // ========== Given:用户进入会员页 ==========
- await page.goto('/#/pages/profile/membership');
- await page.waitForLoadState('networkidle');
- // ========== When:查看会员等级 ==========
- await page.waitForSelector('.level-list, .membership-card', { timeout: 10000 });
- // ========== Then:返回等级列表 ========
- const levelCards = page.locator('.level-card, .membership-level');
- const count = await levelCards.count();
- expect(count).toBeGreaterThan(0);
- // 验证包含权益信息
- const firstCard = levelCards.first();
- const benefitTag = firstCard.locator('.benefit-tag, .benefit');
- if (await benefitTag.isVisible()) {
- const benefitText = await benefitTag.textContent();
- expect(benefitText).toBeTruthy();
- }
- });
- // ===== 场景2:购买会员 =====
- test('[场景2] 购买会员 - 期望会员激活', async ({ page }) => {
- // ========== Given:用户选择会员等级 ==========
- await page.goto('/#/pages/profile/membership');
- await page.waitForLoadState('networkidle');
- // ========== When:购买会员 ==========
- await page.waitForSelector('.level-card', { timeout: 10000 });
- // 点击购买按钮
- const buyBtn = page.locator('.buy-btn, .purchase-btn').first();
- if (await buyBtn.isVisible()) {
- await buyBtn.click();
- }
- // 选择支付方式
- const payMethod = page.locator('.pay-method:has-text("微信")');
- if (await payMethod.isVisible()) {
- await payMethod.click();
- }
- // 确认支付
- await page.click('.confirm-btn, .pay-btn');
- // ========== Then:Milestone-1 - 会员激活 ========
- await page.waitForSelector('.success-tip, .activate-success, .toast-success', { timeout: 15000 });
- expect(await page.locator('.success-tip, .activate-success').isVisible()).toBeTruthy();
- });
- // ===== 场景3:领取试用会员 =====
- test('[场景3] 领取试用会员 - 期望试用激活', async ({ page }) => {
- // ========== Given:用户进入会员页 ==========
- await page.goto('/#/pages/profile/membership');
- await page.waitForLoadState('networkidle');
- // ========== When:领取试用 ==========
- const trialBtn = page.locator('.trial-btn, .free-trial-btn');
- if (await trialBtn.isVisible()) {
- await trialBtn.click();
- }
- // 确认领取
- const confirmBtn = page.locator('.van-dialog__confirm, .dialog-confirm');
- if (await confirmBtn.isVisible()) {
- await confirmBtn.click();
- }
- // ========== Then:试用激活 ========
- await page.waitForSelector('.success-tip, .trial-success, .toast-success', { timeout: 10000 });
- expect(await page.locator('.success-tip, .trial-success').isVisible()).toBeTruthy();
- });
- });
|