127 lines
4.6 KiB
JavaScript
127 lines
4.6 KiB
JavaScript
const cds = require('@sap/cds/lib')
|
|
const { default: axios } = require('axios')
|
|
const { GET, POST, DELETE, PATCH, expect } = cds.test(__dirname + '../../')
|
|
|
|
axios.defaults.auth = { username: 'bob' }
|
|
|
|
jest.setTimeout(11111)
|
|
|
|
describe('Test The GET Endpoints', () => {
|
|
it('Should check Processor Service', async () => {
|
|
const processorService = await cds.connect.to('ProcessorService')
|
|
const { Incidents } = processorService.entities
|
|
expect(await SELECT.from(Incidents)).to.have.length(4)
|
|
})
|
|
|
|
it('Should check Customers', async () => {
|
|
const processorService = await cds.connect.to('ProcessorService')
|
|
const { Customers } = processorService.entities
|
|
expect(await SELECT.from(Customers)).to.have.length(3)
|
|
})
|
|
|
|
it('Test Expand Entity Endpoint', async () => {
|
|
const { data } = await GET`/odata/v4/processor/Customers?$select=firstName&$expand=incidents`
|
|
expect(data).to.be.an('object')
|
|
})
|
|
})
|
|
|
|
/* describe('Draft Choreography APIs', () => {
|
|
let draftId, incidentId
|
|
|
|
it('Create an incident ', async () => {
|
|
const { status, statusText, data } = await POST(`/odata/v4/processor/Incidents`, {
|
|
title: 'Urgent attention required !',
|
|
status_code: 'N'
|
|
})
|
|
draftId = data.ID
|
|
expect(status).to.equal(201)
|
|
expect(statusText).to.equal('Created')
|
|
})
|
|
|
|
it('+ Activate the draft & check Urgency code as H using custom logic', async () => {
|
|
const response = await POST(
|
|
`/odata/v4/processor/Incidents(ID=${draftId},IsActiveEntity=false)/ProcessorService.draftActivate`
|
|
)
|
|
expect(response.status).to.eql(201)
|
|
expect(response.data.urgency_code).to.eql('H')
|
|
})
|
|
|
|
it('+ Test the incident status', async () => {
|
|
const {
|
|
status,
|
|
data: { status_code, ID }
|
|
} = await GET(`/odata/v4/processor/Incidents(ID=${draftId},IsActiveEntity=true)`)
|
|
incidentId = ID
|
|
expect(status).to.eql(200)
|
|
expect(status_code).to.eql('N')
|
|
})
|
|
|
|
describe('Close Incident and Open it again to check Custom logic', () => {
|
|
it(`Should Close the Incident-${draftId}`, async () => {
|
|
const { status } = await POST(
|
|
`/odata/v4/processor/Incidents(ID=${incidentId},IsActiveEntity=true)/ProcessorService.draftEdit`,
|
|
{
|
|
PreserveChanges: true
|
|
}
|
|
)
|
|
expect(status).to.equal(201)
|
|
})
|
|
it(`Should Close the Incident-${draftId}`, async () => {
|
|
const { status } = await PATCH(`/odata/v4/processor/Incidents(ID=${incidentId},IsActiveEntity=false)`, {
|
|
status_code: 'C'
|
|
})
|
|
expect(status).to.equal(200)
|
|
})
|
|
it('+ Activate the draft & check Status code as C using custom logic', async () => {
|
|
const response = await POST(
|
|
`/odata/v4/processor/Incidents(ID=${incidentId},IsActiveEntity=false)/ProcessorService.draftActivate`
|
|
)
|
|
expect(response.status).to.eql(200)
|
|
})
|
|
it('+ Test the incident status to be closed', async () => {
|
|
const {
|
|
status,
|
|
data: { status_code }
|
|
} = await GET(`/odata/v4/processor/Incidents(ID=${incidentId},IsActiveEntity=true)`)
|
|
expect(status).to.eql(200)
|
|
expect(status_code).to.eql('C')
|
|
})
|
|
describe('should fail to re-open closed incident', () => {
|
|
it(`Should Open Closed Incident-${draftId}`, async () => {
|
|
const { status } = await POST(
|
|
`/odata/v4/processor/Incidents(ID=${incidentId},IsActiveEntity=true)/ProcessorService.draftEdit`,
|
|
{
|
|
PreserveChanges: true
|
|
}
|
|
)
|
|
expect(status).to.equal(201)
|
|
})
|
|
it(`Should re-open the Incident-${draftId} but fail`, async () => {
|
|
const { status } = await PATCH(`/odata/v4/processor/Incidents(ID=${incidentId},IsActiveEntity=false)`, {
|
|
status_code: 'N'
|
|
})
|
|
expect(status).to.equal(200)
|
|
})
|
|
it(' `Should fail to activate draft trying to re-open the incidentt', async () => {
|
|
try {
|
|
const response = await POST(
|
|
`/odata/v4/processor/Incidents(ID=${incidentId},IsActiveEntity=false)/ProcessorService.draftActivate`
|
|
)
|
|
} catch (error) {
|
|
expect(error.response.status).to.eql(500)
|
|
expect(error.response.data.error.message).to.include(`Can't modify a closed incident`)
|
|
}
|
|
})
|
|
})
|
|
})
|
|
it('- Delete the Draft', async () => {
|
|
const response = await DELETE(`/odata/v4/processor/Incidents(ID=${draftId},IsActiveEntity=false)`)
|
|
expect(response.status).to.eql(204)
|
|
})
|
|
it('- Delete the Incident', async () => {
|
|
const response = await DELETE(`/odata/v4/processor/Incidents(ID=${draftId},IsActiveEntity=true)`)
|
|
expect(response.status).to.eql(204)
|
|
})
|
|
})
|
|
*/
|