Skip to content
Snippets Groups Projects
Select Git revision
  • 9c561418377a36518bdb5abbbc22ffabb421b81d
  • master default protected
2 results

userRoutes.test.js

Blame
  • userRoutes.test.js 1.40 KiB
    const request = require('supertest');
    const app = require('../server');
    const mongoose = require('mongoose');
    const User = require('../models/user');
    
    describe('User API Tests', () => {
        let userId;
    
        beforeAll(async () => {
            await mongoose.connect(process.env.MONGO_URI, {
                useNewUrlParser: true,
                useUnifiedTopology: true
            });
        });
    
        afterAll(async () => {
            await User.deleteMany({});
            await mongoose.connection.close();
        });
    
        test('Should create a user', async () => {
            const response = await request(app).post('/api/users').send({
                name: 'Nitesh Kumar Verma',
                email: 'nitesh.verma@niveussolutions.com'
            });
            expect(response.status).toBe(201);
            expect(response.body.name).toBe('Nitesh Kumar Verma');
            userId = response.body._id;
        });
    
        test('Should update a user', async () => {
            const response = await request(app).put(`/api/users/${userId}`).send({
                name: 'Nitesh Updated',
                email: 'nitesh.verma@niveussolutions.com'
            });
            expect(response.status).toBe(200);
            expect(response.body.name).toBe('Nitesh Updated');
        });
    
        test('Should fetch all users', async () => {
            const response = await request(app).get('/api/users');
            expect(response.status).toBe(200);
            expect(Array.isArray(response.body)).toBe(true);
        });
    });