vendredi 5 juin 2020

Jest test, one of describes always executed first

I have a api test, where I create something on the beginning, and have to save ID in the variable. Then I run other describes using that variable and it works fine, but there is one describe that is always executed first, looks like it's executed even before beforeAll and I don't understand why.

let requestID = null

describe('POST: /:requestorID/requests', () => {
  test('Should return request number', async (done) => {
    const res = await request
      .post('/ticketing-api/v1/requestors/011111/requests')
      .field('title', 'Test Ticket Request')
      .field('body', 'Test Body Field')
      .field('categoryID', 2)
      .attach('image', './static/testAtt.jpg')
    expect(res.status).toEqual(200)
    expect(res).toSatisfyApiSpec()
    requestID = res.body.requestID  // THIS IS WHERE I SET VARIABLE
    done()
  })
})
// THIS IS SOME OTHER DESCRIBE THAT USES THAT VARIABLE AND WORKS 

describe('GET: /requestors/{requestorID}/requests/{requestID}', function () {
  test('Should return single request for requestor', async (done) => {
    const res = await request.get(`/ticketing-api/v1/requestors/011111/requests/${requestID}`)
    expect(res.status).toEqual(200)
    expect(res.body.request.events.length).toEqual(2)
    expect(res.body.request.events[0].attachments.length).toEqual(1)
    expect(res).toSatisfyApiSpec()
    done()
  })
})
// THERE IS SOME OTHER DESCRIBES USING THAT VARIABLE AND WORK

// AND THIS ONE NO MATTER WHERE I PUT IT, IT ALWAYS EXECUTES FIRST WITH requestID=null

describe('PUT: /requestors/{requestorID}/requests/{requestID}/status', function () {
  console.log(requestID)
  test('Should return validation error', async (done) => {
    const res = await request.put(`/requestors/011111/requests/${requestID}/status`).send({ status: 'test' })
    expect(res.status).toEqual(400)
    expect(res).toSatisfyApiSpec()
    done()
  })
})

Aucun commentaire:

Enregistrer un commentaire