50 lines
1.4 KiB
JavaScript
50 lines
1.4 KiB
JavaScript
const request = require('supertest');
|
|
const express = require('express');
|
|
const authRoutes = require('../../routes/authRoutes');
|
|
|
|
// Mock dependencies
|
|
jest.mock('../../models/Admin');
|
|
jest.mock('../../utils/logger');
|
|
|
|
describe('Auth Controller', () => {
|
|
let app;
|
|
|
|
beforeAll(() => {
|
|
// Setup express app for testing
|
|
app = express();
|
|
app.use(express.json());
|
|
app.use('/api/auth', authRoutes);
|
|
});
|
|
|
|
describe('POST /api/auth/login', () => {
|
|
it('should return 400 if username is missing', async () => {
|
|
const response = await request(app)
|
|
.post('/api/auth/login')
|
|
.send({ password: 'test123' });
|
|
|
|
expect(response.status).toBe(400);
|
|
expect(response.body.success).toBe(false);
|
|
expect(response.body.message).toBeDefined();
|
|
});
|
|
|
|
it('should return 400 if password is missing', async () => {
|
|
const response = await request(app)
|
|
.post('/api/auth/login')
|
|
.send({ username: 'admin' });
|
|
|
|
expect(response.status).toBe(400);
|
|
expect(response.body.success).toBe(false);
|
|
expect(response.body.message).toBeDefined();
|
|
});
|
|
|
|
it('should return 400 if both username and password are missing', async () => {
|
|
const response = await request(app)
|
|
.post('/api/auth/login')
|
|
.send({});
|
|
|
|
expect(response.status).toBe(400);
|
|
expect(response.body.success).toBe(false);
|
|
});
|
|
});
|
|
});
|