Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

480
Views
Jest testing fails with error code ERR_UNHANDLED_REJECTION

Why do I keep receiving this error code ERR_UNHANDLED_REJECTION ?

Test case:

beforeEach(() => {
  jest.resetModules()
})

test('A class should be already initialized at first call', async () => {
  jest.doMock('@google-cloud/firestore', () => class {
    collection () {}
  })

  const Statistics = require('./index')

  expect(Statistics.initialized).toBe(true)
})

And the class module:

const Firestore = require('@google-cloud/firestore')
const Database = new Firestore()

class Statistics {
  constructor () {
    this.initialized = false

    // Default field values
    this.fields = {
      products: {
        count: 0,
        published: 0,
        updatedAt: new Date()
      }
    }

    this.init()
  }

  async init () {
    const fetched = []

    await Database.collection('statistics').get().then(snapshot => {
      // Check if snapshot is completely empty
      if (snapshot.docs.length === 0) {
        // Create new document
        Object.keys(this.fields).forEach(key => {
          Database.collection('statistics').doc(key).set(this.fields[key])
          fetched[key] = this.fields[key]
        })
      } else {
        snapshot.forEach(doc => {
          fetched[doc.id] = doc.data()
        })
      }
    })

    // Setting fetched data to the fields (synchronous)
    // ...

    this.initialized = true
  }
}

module.exports = new Statistics()

Error comes from the line where I'm retrieving the data from Firestore: await Database.collection('statistics').get()...

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!