veriqa
Version:
🎯 Smart Manual QA Test Advisor with AI-Powered Regression Suggestions and Advanced Git Integration
46 lines (39 loc) • 1.65 kB
JavaScript
const request = require('supertest');
const app = require('../test-api');
describe('User API Tests', () => {
describe('GET /api/users', () => {
it('should return all users', async () => {
const response = await request(app).get('/api/users');
expect(response.status).toBe(200);
expect(response.body).toHaveLength(2);
expect(response.body[0].name).toBe('John Doe');
});
});
describe('GET /api/users/:id', () => {
it('should return a specific user', async () => {
const response = await request(app).get('/api/users/1');
expect(response.status).toBe(200);
expect(response.body.name).toBe('John Doe');
});
it('should return 404 for non-existent user', async () => {
const response = await request(app).get('/api/users/999');
expect(response.status).toBe(404);
expect(response.body.error).toBe('User not found');
});
});
describe('POST /api/users', () => {
it('should create a new user', async () => {
const newUser = { name: 'Bob Wilson', email: 'bob@example.com' };
const response = await request(app).post('/api/users').send(newUser);
expect(response.status).toBe(201);
expect(response.body.name).toBe('Bob Wilson');
expect(response.body.email).toBe('bob@example.com');
expect(response.body.id).toBeDefined();
});
it('should return 400 for missing required fields', async () => {
const response = await request(app).post('/api/users').send({ name: 'Bob' });
expect(response.status).toBe(400);
expect(response.body.error).toBe('Name and email are required');
});
});
});