125 lines
3.6 KiB
JavaScript
125 lines
3.6 KiB
JavaScript
// 生成随机手机号
|
|
const generatePhone = () => {
|
|
const timestamp = Date.now().toString().slice(-8);
|
|
return `138${timestamp}`;
|
|
};
|
|
|
|
describe('购买流程测试', () => {
|
|
let testPhone;
|
|
let testPassword = 'Test123456';
|
|
|
|
beforeEach(() => {
|
|
testPhone = generatePhone();
|
|
|
|
// 注册并登录
|
|
cy.visit('/');
|
|
cy.wait(1000);
|
|
cy.get('.btn-register').click();
|
|
cy.get('.auth-modal').should('be.visible');
|
|
cy.get('input[placeholder*="手机号"]').type(testPhone);
|
|
cy.get('input[placeholder*="设置密码"]').type(testPassword);
|
|
cy.get('input[placeholder*="确认密码"]').type(testPassword);
|
|
cy.get('.auth-modal .auth-submit-btn').click();
|
|
cy.wait(3000); // 等待页面刷新
|
|
});
|
|
|
|
it('未登录用户点击下载应该提示登录', () => {
|
|
// 退出登录
|
|
cy.get('.ant-avatar').click();
|
|
cy.contains('退出登录').click();
|
|
cy.wait(1000);
|
|
|
|
// 进入作品详情页
|
|
cy.visit('/');
|
|
cy.wait(1000);
|
|
cy.get('.work-card', { timeout: 15000 }).first().click();
|
|
cy.wait(2000);
|
|
|
|
// 点击下载按钮
|
|
cy.get('.download-btn').click();
|
|
|
|
// 应该显示登录提示
|
|
cy.contains('请先登录', { timeout: 5000 }).should('exist');
|
|
|
|
cy.log('✅ 未登录下载提示测试通过');
|
|
});
|
|
|
|
it('已登录用户应该能看到购买弹窗', () => {
|
|
// 进入作品详情页
|
|
cy.get('.work-card', { timeout: 15000 }).first().click();
|
|
cy.wait(2000);
|
|
|
|
// 点击下载按钮
|
|
cy.get('.download-btn').click();
|
|
cy.wait(2000);
|
|
|
|
// 检查是否显示购买弹窗或直接下载
|
|
cy.get('body').then($body => {
|
|
if ($body.find('.ant-modal:visible').length > 0) {
|
|
cy.get('.ant-modal').should('be.visible');
|
|
cy.contains('购买作品').should('exist');
|
|
cy.log('✅ 购买弹窗测试通过');
|
|
} else {
|
|
cy.log('✅ 已购买,直接下载测试通过');
|
|
}
|
|
});
|
|
});
|
|
|
|
it('点击确定购买应该创建订单', () => {
|
|
// 进入作品详情页
|
|
cy.get('.work-card', { timeout: 15000 }).first().click();
|
|
cy.wait(2000);
|
|
|
|
// 点击下载按钮
|
|
cy.contains('button', '我要下载').click();
|
|
cy.wait(1000);
|
|
|
|
// 如果显示购买弹窗
|
|
cy.get('body').then($body => {
|
|
if ($body.find('.ant-modal:contains("购买")').length > 0) {
|
|
// 拦截网络请求
|
|
cy.intercept('POST', '**/orders/create').as('createOrder');
|
|
cy.intercept('POST', '**/payment/create').as('createPayment');
|
|
|
|
// 点击确定购买
|
|
cy.get('.ant-modal').contains('button', '确定购买').click();
|
|
|
|
// 等待请求完成
|
|
cy.wait('@createOrder', { timeout: 10000 }).its('response.statusCode').should('be.oneOf', [200, 201]);
|
|
|
|
cy.log('✅ 购买流程测试通过');
|
|
} else {
|
|
cy.log('✅ 已购买作品,跳过购买测试');
|
|
}
|
|
});
|
|
});
|
|
|
|
it('应该验证收藏功能', () => {
|
|
// 进入作品详情页
|
|
cy.get('.work-card', { timeout: 15000 }).first().click();
|
|
cy.wait(2000);
|
|
|
|
// 点击收藏按钮
|
|
cy.get('.collect-btn').click();
|
|
cy.wait(500);
|
|
|
|
// 应该显示消息
|
|
cy.contains('收藏成功', { timeout: 5000 }).should('exist');
|
|
cy.log('✅ 收藏功能测试通过');
|
|
});
|
|
|
|
it('应该验证分享功能', () => {
|
|
// 进入作品详情页
|
|
cy.get('.work-card', { timeout: 15000 }).first().click();
|
|
cy.wait(2000);
|
|
|
|
// 点击分享按钮
|
|
cy.get('.share-btn').click();
|
|
cy.wait(500);
|
|
|
|
// 应该显示成功消息
|
|
cy.contains('链接已复制', { timeout: 5000 }).should('exist');
|
|
cy.log('✅ 分享功能测试通过');
|
|
});
|
|
});
|