ConvertEmailConfirmedAtToDates.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { expect } from 'chai'
  2. import { db } from '../../../app/src/infrastructure/mongodb.js'
  3. import { exec } from 'node:child_process'
  4. describe('ConvertEmailConfirmedAtToDates', function () {
  5. beforeEach('insert data', async function () {
  6. await db.users.insertMany([
  7. { email: 'foo0@bar.com', emails: [{ email: 'foo0@bar.com' }] },
  8. {
  9. email: 'foo1@bar.com',
  10. emails: [
  11. { email: 'foo1@bar.com', confirmedAt: '2025-06-20 15:53:31 UTC' },
  12. ],
  13. },
  14. {
  15. email: 'foo2@bar.com',
  16. emails: [
  17. { email: 'foo2@bar.com', confirmedAt: '2025-06-20 15:53:32 UTC' },
  18. { email: 'foo3@bar.com', confirmedAt: '2025-06-20 15:53:33 UTC' },
  19. {
  20. email: 'foo4@bar.com',
  21. confirmedAt: new Date('2025-06-20T15:53:31.134Z'),
  22. },
  23. ],
  24. },
  25. ])
  26. })
  27. beforeEach('run migration', function (done) {
  28. exec(
  29. 'east migrate -t saas --force 20210726083523_convert_confirmedAt_strings_to_dates',
  30. done
  31. )
  32. })
  33. it('should update the dates', async function () {
  34. expect(
  35. await db.users.find({}, { projection: { _id: 0 } }).toArray()
  36. ).to.deep.equal([
  37. { email: 'foo0@bar.com', emails: [{ email: 'foo0@bar.com' }] },
  38. {
  39. email: 'foo1@bar.com',
  40. emails: [
  41. {
  42. email: 'foo1@bar.com',
  43. confirmedAt: new Date('2025-06-20T15:53:31.000Z'),
  44. },
  45. ],
  46. },
  47. {
  48. email: 'foo2@bar.com',
  49. emails: [
  50. {
  51. email: 'foo2@bar.com',
  52. confirmedAt: new Date('2025-06-20T15:53:32.000Z'),
  53. },
  54. {
  55. email: 'foo3@bar.com',
  56. confirmedAt: new Date('2025-06-20T15:53:33.000Z'),
  57. },
  58. {
  59. email: 'foo4@bar.com',
  60. confirmedAt: new Date('2025-06-20T15:53:31.134Z'),
  61. },
  62. ],
  63. },
  64. ])
  65. })
  66. })