TriggerEmailBackupForAllUsers.spec.ts 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. import { Logger } from 'winston'
  2. import { SettingRepositoryInterface } from '../../Setting/SettingRepositoryInterface'
  3. import { TriggerEmailBackupForUser } from '../TriggerEmailBackupForUser/TriggerEmailBackupForUser'
  4. import { TriggerEmailBackupForAllUsers } from './TriggerEmailBackupForAllUsers'
  5. import { EncryptionVersion } from '../../Encryption/EncryptionVersion'
  6. import { Setting } from '../../Setting/Setting'
  7. import { Result, SettingName, Timestamps, Uuid } from '@standardnotes/domain-core'
  8. describe('TriggerEmailBackupForAllUsers', () => {
  9. let settingRepository: SettingRepositoryInterface
  10. let triggerEmailBackupForUserUseCase: TriggerEmailBackupForUser
  11. let logger: Logger
  12. const createUseCase = () =>
  13. new TriggerEmailBackupForAllUsers(settingRepository, triggerEmailBackupForUserUseCase, logger)
  14. beforeEach(() => {
  15. const setting = Setting.create({
  16. name: SettingName.NAMES.EmailBackupFrequency,
  17. value: null,
  18. serverEncryptionVersion: EncryptionVersion.Default,
  19. userUuid: Uuid.create('00000000-0000-0000-0000-000000000000').getValue(),
  20. sensitive: false,
  21. timestamps: Timestamps.create(123, 123).getValue(),
  22. }).getValue()
  23. settingRepository = {} as jest.Mocked<SettingRepositoryInterface>
  24. settingRepository.countAllByNameAndValue = jest.fn().mockResolvedValue(1)
  25. settingRepository.findAllByNameAndValue = jest.fn().mockResolvedValue([setting])
  26. triggerEmailBackupForUserUseCase = {} as jest.Mocked<TriggerEmailBackupForUser>
  27. triggerEmailBackupForUserUseCase.execute = jest.fn().mockResolvedValue(Result.ok())
  28. logger = {} as jest.Mocked<Logger>
  29. logger.error = jest.fn()
  30. logger.info = jest.fn()
  31. })
  32. it('triggers email backup for all users', async () => {
  33. const useCase = createUseCase()
  34. const result = await useCase.execute({ backupFrequency: 'daily' })
  35. expect(result.isFailed()).toBeFalsy()
  36. })
  37. })