DeleteSharedVaultInvitesToUser.spec.ts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { Result, Timestamps, Uuid } from '@standardnotes/domain-core'
  2. import { SharedVaultInviteRepositoryInterface } from '../../SharedVault/User/Invite/SharedVaultInviteRepositoryInterface'
  3. import { DeclineInviteToSharedVault } from '../DeclineInviteToSharedVault/DeclineInviteToSharedVault'
  4. import { DeleteSharedVaultInvitesToUser } from './DeleteSharedVaultInvitesToUser'
  5. import { SharedVaultInvite } from '../../SharedVault/User/Invite/SharedVaultInvite'
  6. import { SharedVaultUserPermission } from '../../SharedVault/User/SharedVaultUserPermission'
  7. describe('DeleteSharedVaultInvitesToUser', () => {
  8. let sharedVaultInviteRepository: SharedVaultInviteRepositoryInterface
  9. let declineInviteToSharedVault: DeclineInviteToSharedVault
  10. let sharedVaultInvite: SharedVaultInvite
  11. const createUseCase = () =>
  12. new DeleteSharedVaultInvitesToUser(sharedVaultInviteRepository, declineInviteToSharedVault)
  13. beforeEach(() => {
  14. sharedVaultInvite = SharedVaultInvite.create({
  15. sharedVaultUuid: Uuid.create('00000000-0000-0000-0000-000000000000').getValue(),
  16. userUuid: Uuid.create('00000000-0000-0000-0000-000000000000').getValue(),
  17. senderUuid: Uuid.create('00000000-0000-0000-0000-000000000000').getValue(),
  18. encryptedMessage: 'encrypted-message',
  19. permission: SharedVaultUserPermission.create(SharedVaultUserPermission.PERMISSIONS.Read).getValue(),
  20. timestamps: Timestamps.create(123, 123).getValue(),
  21. }).getValue()
  22. sharedVaultInviteRepository = {} as jest.Mocked<SharedVaultInviteRepositoryInterface>
  23. sharedVaultInviteRepository.findByUserUuid = jest.fn().mockReturnValue([sharedVaultInvite])
  24. declineInviteToSharedVault = {} as jest.Mocked<DeclineInviteToSharedVault>
  25. declineInviteToSharedVault.execute = jest.fn().mockReturnValue(Result.ok())
  26. })
  27. it('should decline all invites to user', async () => {
  28. const useCase = createUseCase()
  29. const result = await useCase.execute({
  30. userUuid: '00000000-0000-0000-0000-000000000000',
  31. })
  32. expect(result.isFailed()).toBeFalsy()
  33. expect(declineInviteToSharedVault.execute).toHaveBeenCalled()
  34. })
  35. it('should return error when user uuid is invalid', async () => {
  36. const useCase = createUseCase()
  37. const result = await useCase.execute({
  38. userUuid: 'invalid-uuid',
  39. })
  40. expect(result.isFailed()).toBeTruthy()
  41. })
  42. it('should return error when declineInviteToSharedVault fails', async () => {
  43. declineInviteToSharedVault.execute = jest.fn().mockReturnValue(Result.fail('error'))
  44. const useCase = createUseCase()
  45. const result = await useCase.execute({
  46. userUuid: '00000000-0000-0000-0000-000000000000',
  47. })
  48. expect(result.isFailed()).toBeTruthy()
  49. })
  50. })