Skip to content

Commit

Permalink
Update agency.test.ts
Browse files Browse the repository at this point in the history
  • Loading branch information
aelassas committed Feb 18, 2024
1 parent d3b6ceb commit a6ea0e2
Show file tree
Hide file tree
Showing 2 changed files with 97 additions and 18 deletions.
9 changes: 8 additions & 1 deletion api/src/controllers/agencyController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,14 @@ export async function update(req: Request, res: Response) {
agency.payLater = payLater

await agency.save()
return res.sendStatus(200)
return res.json({
_id,
fullName: agency.fullName,
phone: agency.phone,
location: agency.location,
bio: agency.bio,
payLater: agency.payLater,
})
}

console.error('[agency.update] Agency not found:', _id)
Expand Down
106 changes: 89 additions & 17 deletions api/tests/agency.test.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import 'dotenv/config'
import request from 'supertest'
import * as movininTypes from 'movinin-types'
import * as DatabaseHelper from '../src/common/DatabaseHelper'
import * as TestHelper from './TestHelper'
import app from '../src/app'
import * as env from '../src/config/env.config'
import User from '../src/models/User'

let SUPPLIER1_ID: string
let SUPPLIER2_ID: string
let AGENCY1_ID: string
let AGENCY2_ID: string
let AGENCY1_NAME: string

//
// Connecting and initializing the database before running the test suite
Expand All @@ -13,10 +19,10 @@ beforeAll(async () => {
await TestHelper.initializeDatabase()

// create two agencies
const agencyName1 = TestHelper.getAgencyName()
AGENCY1_NAME = TestHelper.getAgencyName()
const agencyName2 = TestHelper.getAgencyName()
SUPPLIER1_ID = await TestHelper.createAgency(`${agencyName1}@test.bookcars.ma`, agencyName1)
SUPPLIER2_ID = await TestHelper.createAgency(`${agencyName2}@test.bookcars.ma`, agencyName2)
AGENCY1_ID = await TestHelper.createAgency(`${AGENCY1_NAME}@test.movinin.io`, AGENCY1_NAME)
AGENCY2_ID = await TestHelper.createAgency(`${agencyName2}@test.movinin.io`, agencyName2)
}
})

Expand All @@ -27,8 +33,8 @@ afterAll(async () => {
await TestHelper.clearDatabase()

// delete agencies
await TestHelper.deleteAgency(SUPPLIER1_ID)
await TestHelper.deleteAgency(SUPPLIER2_ID)
await TestHelper.deleteAgency(AGENCY1_ID)
await TestHelper.deleteAgency(AGENCY2_ID)

await DatabaseHelper.Close(false)
})
Expand All @@ -38,10 +44,26 @@ afterAll(async () => {
//

describe('POST /api/validate-agency', () => {
it('should validate an agency', async () => {
it('should validate a agency', async () => {
const token = await TestHelper.signinAsAdmin()

// TODO
let payload: movininTypes.ValidateAgencyPayload = { fullName: AGENCY1_NAME }

let res = await request(app)
.post('/api/validate-agency')
.set(env.X_ACCESS_TOKEN, token)
.send(payload)

expect(res.statusCode).toBe(204)

payload = { fullName: TestHelper.getAgencyName() }

res = await request(app)
.post('/api/validate-agency')
.set(env.X_ACCESS_TOKEN, token)
.send(payload)

expect(res.statusCode).toBe(200)

await TestHelper.signout(token)
})
Expand All @@ -51,17 +73,47 @@ describe('PUT /api/update-agency', () => {
it('should update an agency', async () => {
const token = await TestHelper.signinAsAdmin()

// TODO
AGENCY1_NAME = TestHelper.getAgencyName()
const bio = 'bio1'
const location = 'location1'
const phone = '01010101'
const payLater = false

const payload: movininTypes.UpdateAgencyPayload = {
_id: AGENCY1_ID,
fullName: AGENCY1_NAME,
bio,
location,
phone,
payLater,
}

const res = await request(app)
.put('/api/update-agency')
.set(env.X_ACCESS_TOKEN, token)
.send(payload)

expect(res.statusCode).toBe(200)
expect(res.body.fullName).toBe(AGENCY1_NAME)
expect(res.body.bio).toBe(bio)
expect(res.body.location).toBe(location)
expect(res.body.phone).toBe(phone)
expect(res.body.payLater).toBeFalsy()

await TestHelper.signout(token)
})
})

describe('GET /api/agency/:id', () => {
it('should get an agency', async () => {
it('should get a agency', async () => {
const token = await TestHelper.signinAsAdmin()

// TODO
const res = await request(app)
.get(`/api/agency/${AGENCY1_ID}`)
.set(env.X_ACCESS_TOKEN, token)

expect(res.statusCode).toBe(200)
expect(res.body.fullName).toBe(AGENCY1_NAME)

await TestHelper.signout(token)
})
Expand All @@ -71,25 +123,45 @@ describe('GET /api/agencies/:page/:size', () => {
it('should get agencies', async () => {
const token = await TestHelper.signinAsAdmin()

// TODO
const res = await request(app)
.get(`/api/agencies/${TestHelper.PAGE}/${TestHelper.SIZE}`)
.set(env.X_ACCESS_TOKEN, token)

expect(res.statusCode).toBe(200)
expect(res.body[0].resultData.length).toBeGreaterThan(1)

await TestHelper.signout(token)
})
})

describe('GET /api/all-agencies', () => {
it('should get all agencies', async () => {
const res = await request(app)
.get('/api/all-agencies')

// TODO

expect(res.statusCode).toBe(200)
expect(res.body.length).toBeGreaterThan(1)
})
})

describe('DELETE /api/delete-agency/:id', () => {
it('should delete an agency', async () => {
it('should delete a agency', async () => {
const token = await TestHelper.signinAsAdmin()

// TODO
const agencyName = TestHelper.getAgencyName()
const _id = await TestHelper.createAgency(`${agencyName}@test.movinin.io`, agencyName)

let agency = await User.findById(_id)
expect(agency).not.toBeNull()

const res = await request(app)
.delete(`/api/delete-agency/${_id}`)
.set(env.X_ACCESS_TOKEN, token)

expect(res.statusCode).toBe(200)

agency = await User.findById(_id)
expect(agency).toBeNull()

await TestHelper.signout(token)
})
Expand Down

0 comments on commit a6ea0e2

Please sign in to comment.