Spaces:
Runtime error
Runtime error
/* | |
At the end | |
1 Audit: {name: "Audit 1", language: "en", auditType: "Web"} | |
*/ | |
module.exports = function (request, app) { | |
describe('Audit Suite Tests', () => { | |
var userToken = ''; | |
var audit1Id = ''; | |
var audit2Id = ''; | |
beforeAll(async () => { | |
var response = await request(app) | |
.post('/api/users/token') | |
.send({ username: 'admin', password: 'Admin123' }); | |
userToken = response.body.datas.token; | |
}); | |
describe('Audit CRUD operations', () => { | |
it('Get Audits (no existing audit in db)', async () => { | |
var response = await request(app) | |
.get('/api/audits') | |
.set('Cookie', [`token=JWT ${userToken}`]); | |
expect(response.status).toBe(200); | |
expect(response.body.datas).toHaveLength(0); | |
}); | |
it('Create audit with partial information', async () => { | |
var audit = { name: 'Audit 1' }; | |
var response = await request(app) | |
.post('/api/audits') | |
.set('Cookie', [`token=JWT ${userToken}`]) | |
.send(audit); | |
expect(response.status).toBe(422); | |
}); | |
it('Create audit with invalid audit type', async () => { | |
var audit = { | |
name: 'Audit 1', | |
language: 'en', | |
auditType: 'Internal Test', | |
}; | |
var response = await request(app) | |
.post('/api/audits') | |
.set('Cookie', [`token=JWT ${userToken}`]) | |
.send(audit); | |
expect(response.status).toBe(404); | |
}); | |
it('Create audit', async () => { | |
var audit = { name: 'Audit 1', language: 'en', auditType: 'Web' }; | |
var response = await request(app) | |
.post('/api/audits') | |
.set('Cookie', [`token=JWT ${userToken}`]) | |
.send(audit); | |
expect(response.status).toBe(201); | |
audit1Id = response.body.datas.audit._id; | |
}); | |
it('Create second audit', async () => { | |
var audit = { name: 'Audit 2', language: 'fr', auditType: 'Web' }; | |
var response = await request(app) | |
.post('/api/audits') | |
.set('Cookie', [`token=JWT ${userToken}`]) | |
.send(audit); | |
expect(response.status).toBe(201); | |
audit2Id = response.body.datas.audit._id; | |
}); | |
it('Delete audit', async () => { | |
var response = await request(app) | |
.delete(`/api/audits/${audit2Id}`) | |
.set('Cookie', [`token=JWT ${userToken}`]); | |
expect(response.status).toBe(200); | |
response = await request(app) | |
.get('/api/audits') | |
.set('Cookie', [`token=JWT ${userToken}`]); | |
expect(response.body.datas).toHaveLength(1); | |
}); | |
it('Update audit general info', async () => { | |
var auditGeneralInfo = { | |
_id: audit1Id, | |
scope: ['Scope Item 1', 'Scope Item 2'], | |
}; | |
var response = await request(app) | |
.put(`/api/audits/${audit1Id}/general`) | |
.set('Cookie', [`token=JWT ${userToken}`]) | |
.send(auditGeneralInfo); | |
expect(response.status).toBe(200); | |
}); | |
it('Get audit general info', async () => { | |
var response = await request(app) | |
.get(`/api/audits/${audit1Id}/general`) | |
.set('Cookie', [`token=JWT ${userToken}`]); | |
expect(response.status).toBe(200); | |
expect(response.body.datas.name).toBe('Audit 1'); | |
expect(response.body.datas.auditType).toBe('Web'); | |
expect(response.body.datas.language).toBe('en'); | |
expect(response.body.datas.collaborators).toHaveLength(0); | |
expect(response.body.datas.reviewers).toHaveLength(0); | |
expect(response.body.datas.customFields).toHaveLength(0); | |
expect(response.body.datas.scope).toHaveLength(2); | |
expect(response.body.datas.scope[0]).toBe('Scope Item 1'); | |
expect(response.body.datas.scope[1]).toBe('Scope Item 2'); | |
}); | |
}); | |
}); | |
}; | |