chore: initialize tuhui repository
This commit is contained in:
107
frontend/cypress/e2e/auth.cy.js
Normal file
107
frontend/cypress/e2e/auth.cy.js
Normal file
@@ -0,0 +1,107 @@
|
||||
// 生成随机手机号
|
||||
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); // 等待页面加载
|
||||
});
|
||||
|
||||
it('应该能够成功注册新用户', () => {
|
||||
// 点击注册按钮 - 使用class选择器
|
||||
cy.get('.btn-register').click();
|
||||
|
||||
// 等待注册模态框出现
|
||||
cy.get('.auth-modal', { timeout: 10000 }).should('be.visible');
|
||||
|
||||
// 填写注册表单
|
||||
cy.get('input[placeholder*="手机号"]').type(testPhone);
|
||||
cy.get('input[placeholder*="昵称"]').type('E2E测试用户');
|
||||
cy.get('input[placeholder*="设置密码"]').type(testPassword);
|
||||
cy.get('input[placeholder*="确认密码"]').type(testPassword);
|
||||
|
||||
// 点击提交注册
|
||||
cy.get('.auth-modal .auth-submit-btn').click();
|
||||
|
||||
// 验证注册成功 - 等待页面刷新并检查登录状态
|
||||
// 注册成功后会自动刷新页面,所以等待头像出现即可
|
||||
cy.get('.ant-avatar', { timeout: 15000 }).should('exist');
|
||||
|
||||
cy.log(`✅ 注册测试通过 - 手机号: ${testPhone}`);
|
||||
});
|
||||
|
||||
it('应该能够使用已注册账号登录', () => {
|
||||
// 先注册
|
||||
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.get('.ant-avatar', { timeout: 15000 }).should('exist');
|
||||
|
||||
// 退出登录
|
||||
cy.get('.ant-avatar').click();
|
||||
cy.contains('退出登录').click();
|
||||
cy.wait(2000);
|
||||
|
||||
// 重新登录
|
||||
cy.visit('/');
|
||||
cy.wait(1000);
|
||||
cy.get('.btn-login').click();
|
||||
cy.get('.auth-modal').should('be.visible');
|
||||
cy.get('input[placeholder*="手机号"]').type(testPhone);
|
||||
cy.get('input[placeholder*="密码"]').first().type(testPassword);
|
||||
cy.get('.auth-modal .auth-submit-btn').click();
|
||||
|
||||
// 验证登录成功 - 等待页面刷新并检查登录状态
|
||||
cy.get('.ant-avatar', { timeout: 15000 }).should('exist');
|
||||
|
||||
cy.log(`✅ 登录测试通过 - 手机号: ${testPhone}`);
|
||||
});
|
||||
|
||||
it('应该验证手机号格式', () => {
|
||||
cy.get('.btn-register').click();
|
||||
cy.get('.auth-modal').should('be.visible');
|
||||
|
||||
// 输入无效手机号
|
||||
cy.get('input[placeholder*="手机号"]').type('123456');
|
||||
cy.get('input[placeholder*="设置密码"]').type(testPassword);
|
||||
cy.get('input[placeholder*="确认密码"]').type(testPassword);
|
||||
|
||||
// 尝试提交
|
||||
cy.get('.auth-modal .auth-submit-btn').click();
|
||||
|
||||
// 应该显示错误提示
|
||||
cy.contains('请输入正确的11位手机号').should('be.visible');
|
||||
|
||||
cy.log('✅ 手机号验证测试通过');
|
||||
});
|
||||
|
||||
it('应该验证密码确认', () => {
|
||||
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('DifferentPassword123');
|
||||
|
||||
// 尝试提交
|
||||
cy.get('.auth-modal .auth-submit-btn').click();
|
||||
|
||||
// 应该显示密码不一致错误
|
||||
cy.contains('两次输入的密码不一致').should('be.visible');
|
||||
|
||||
cy.log('✅ 密码确认测试通过');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user