2

My global setup code creates a dynamodb table and the global teardown destroys it. The code is just generic dynamodb.createTable() and dynamodb.deleteTable()

My basic test that just wants to return a list of inserted entities:

describe('Test suite', () => {
   beforeAll(async () => {
      await InsertEntity()
   })

  test('test', async () => {
    
    const response = await getEntities()

    expect(response.success).toBe(true)
  })
})

My InsertEntities code:

export const InsertEntities = async () => {
  const entity = new Entity({
    // some data
  })

  const result = await entity.save()
  console.log('entity', result)
}

But as soon as I run jest, it starts running the tests before the table is up, so it fails horribly. What can I do to stop this behavior?

What have I already tried: Running jest with --runInBand, adding jest.setTimeout() with various different timings going as up as 20secs. Changing the beforeAll to beforeEach. Checking how much time the table needs to go up: 10secs.

I've changed this code to run as setupFilesAfterEnv, but it still crashed. I've written similar code before and it still works! But not this time.

So, what am I missing from jest flow?

0 Answers0