const request = require('supertest')
const mongoose =require('mongoose')
const app = require('./app.js')



beforeAll(async () => {
  
   const url = "mongodb://127.0.0.1:27017/test";
   await mongoose.connect(url)
 })



describe('post/api/create user',()=>{
    test('it should create a user',async()=>{
        const data = {
            firstName:"max1",
            lastName:"simon",
            city:"Noida"
        }
      const response = await request(app).post("/api/v1/create").send(data)
      
      expect(response.status).toBe(200)
      expect(response.body.User._id).toBeTruthy();
      expect(response.body.User.firstName).toBe(data.firstName);
      })
})


describe('get/api/user',()=>{
    test('it should getAll users',async()=>{
      const response = await request(app).get("/api/v1/users")
    
      expect(response.status).toBe(200)
   

    })
})




describe('put/api/updateuser',()=>{
    test('it should update user',async()=>{
    const id = "64ab939f89e4714e4b8ad2cc"
    const data = {
          firstName:"max2"
      }
        
      const response = await request(app).put(`/api/v1/update/${id}`).send(data)
      
      expect(response.status).toBe(200)
      expect(response.body._id).toBeTruthy();
      expect(response.body.firstName).toBe(data.firstName)

    })
})