check-mongodb.js 929 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const { ObjectId } = require('mongodb')
  2. const { waitForDb, db } = require('../../../app/src/infrastructure/mongodb')
  3. const { getMongoClient } = require('../../../app/src/infrastructure/Mongoose')
  4. async function main() {
  5. try {
  6. await waitForDb()
  7. } catch (err) {
  8. console.error('Cannot connect to mongodb')
  9. throw err
  10. }
  11. try {
  12. await testTransactions()
  13. } catch (err) {
  14. console.error("Mongo instance doesn't support transactions")
  15. throw err
  16. }
  17. }
  18. async function testTransactions() {
  19. const mongoClient = await getMongoClient()
  20. const session = mongoClient.startSession()
  21. try {
  22. await session.withTransaction(async () => {
  23. await db.users.findOne({ _id: ObjectId() }, { session })
  24. })
  25. } finally {
  26. await session.endSession()
  27. }
  28. }
  29. main()
  30. .then(() => {
  31. console.error('Mongodb is up.')
  32. process.exit(0)
  33. })
  34. .catch(err => {
  35. console.error(err)
  36. process.exit(1)
  37. })