ActivityMessage.spec.ts 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. // Copyright (C) 2012-2023 Zammad Foundation, https://zammad-foundation.org/
  2. const now = new Date('2022-01-03 00:00:00')
  3. vi.setSystemTime(now)
  4. import { renderComponent } from '@tests/support/components'
  5. import ActivityMessage from '../ActivityMessage.vue'
  6. import type { Props } from '../ActivityMessage.vue'
  7. const renderActivityMessage = (props: Partial<Props> = {}) => {
  8. return renderComponent(ActivityMessage, {
  9. props: {
  10. objectName: 'Ticket',
  11. typeName: 'update',
  12. createdBy: {
  13. fullname: 'John Doe',
  14. firstname: 'John',
  15. lastname: 'Doe',
  16. active: true,
  17. },
  18. createdAt: new Date('2022-01-01 00:00:00').toISOString(),
  19. metaObject: {
  20. title: 'Ticket Title',
  21. id: '1',
  22. internalId: 1,
  23. },
  24. ...props,
  25. },
  26. router: true,
  27. })
  28. }
  29. describe('NotificationItem.vue', () => {
  30. afterEach(() => {
  31. vi.useRealTimers()
  32. })
  33. it('check update activity message output', () => {
  34. const view = renderActivityMessage()
  35. expect(view.container).toHaveTextContent(
  36. 'John Doe updated ticket Ticket Title',
  37. )
  38. })
  39. it('check create activity message output', () => {
  40. const view = renderActivityMessage({
  41. typeName: 'create',
  42. })
  43. expect(view.container).toHaveTextContent(
  44. 'John Doe created ticket Ticket Title',
  45. )
  46. })
  47. it('check that avatar exists', () => {
  48. const view = renderActivityMessage()
  49. const avatar = view.getByTestId('common-avatar')
  50. expect(avatar).toHaveTextContent('JD')
  51. })
  52. it('check that link exists', () => {
  53. const view = renderActivityMessage()
  54. const link = view.getByRole('link')
  55. expect(link).toHaveAttribute('href', 'tickets/1')
  56. })
  57. it('check that create date exists', () => {
  58. vi.setSystemTime(now)
  59. const view = renderActivityMessage()
  60. expect(view.getByText(/2 days ago/)).toBeInTheDocument()
  61. })
  62. it('no output for not existing builder', (context) => {
  63. context.skipConsole = true
  64. const view = renderActivityMessage({
  65. objectName: 'NotExisting',
  66. })
  67. expect(view.html()).not.toContain('a')
  68. })
  69. })