clouddisk-project/tests/backend/auth.test.js
Team 61117803e1 团队工作进展:
- 后端: 文件管理 API (上传/下载/删除/创建文件夹)
- 前端: Electron 主进程 + React 页面框架
- 测试: 认证和文件管理测试用例
2026-03-10 07:27:10 +00:00

63 lines
1.7 KiB
JavaScript

const request = require('supertest');
const app = require('../../backend/src/index');
describe('Auth API', () => {
const testUser = {
username: 'testuser' + Date.now(),
password: 'test123',
email: 'test@example.com'
};
describe('POST /api/auth/register', () => {
it('should register a new user', async () => {
const response = await request(app)
.post('/api/auth/register')
.send(testUser);
expect(response.status).toBe(200);
expect(response.body).toHaveProperty('token');
expect(response.body).toHaveProperty('userId');
});
it('should not register duplicate username', async () => {
// First registration
await request(app)
.post('/api/auth/register')
.send(testUser);
// Duplicate registration
const response = await request(app)
.post('/api/auth/register')
.send(testUser);
expect(response.status).toBe(400);
expect(response.body).toHaveProperty('error');
});
});
describe('POST /api/auth/login', () => {
it('should login with valid credentials', async () => {
const response = await request(app)
.post('/api/auth/login')
.send({
username: testUser.username,
password: testUser.password
});
expect(response.status).toBe(200);
expect(response.body).toHaveProperty('token');
});
it('should fail with invalid credentials', async () => {
const response = await request(app)
.post('/api/auth/login')
.send({
username: testUser.username,
password: 'wrongpassword'
});
expect(response.status).toBe(401);
});
});
});