jagd-apps/drohnenfuehrer/backend/controllers/__tests__/authController.test.js

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);
});
});
});