ticket-overviews-a11y.spec.ts 2.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. import { flushPromises } from '@vue/test-utils'
  3. import { axe } from 'vitest-axe'
  4. import { generateObjectData } from '#tests/graphql/builders/index.ts'
  5. import ticketCustomerObjectAttributes from '#tests/graphql/factories/fixtures/ticket-customer-object-attributes.ts'
  6. import { visitView } from '#tests/support/components/visitView.ts'
  7. import { mockPermissions } from '#tests/support/mock-permissions.ts'
  8. import { mockObjectManagerFrontendAttributesQuery } from '#shared/entities/object-attributes/graphql/queries/objectManagerFrontendAttributes.mocks.ts'
  9. import { mockTicketOverviewTicketCountQuery } from '#shared/entities/ticket/graphql/queries/ticket/overviewTicketCount.mocks.ts'
  10. import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
  11. import { EnumOrderDirection } from '#shared/graphql/types.ts'
  12. import { convertToGraphQLId } from '#shared/graphql/utils.ts'
  13. import { mockTicketsByOverviewQuery } from '#desktop/entities/ticket/graphql/queries/ticketsByOverview.mocks.ts'
  14. import { mockUserCurrentTicketOverviewsQuery } from '#desktop/entities/ticket/graphql/queries/userCurrentTicketOverviews.mocks.ts'
  15. describe('ticket overviews view', () => {
  16. it('has no accessibility violations in main content', async () => {
  17. mockPermissions(['ticket.agent'])
  18. mockUserCurrentTicketOverviewsQuery({
  19. userCurrentTicketOverviews: [
  20. {
  21. id: convertToGraphQLId('Overview', 1),
  22. name: 'My Assigned Tickets',
  23. link: 'my_assigned',
  24. prio: 1000,
  25. orderBy: 'created_at',
  26. orderDirection: EnumOrderDirection.Ascending,
  27. viewColumns: [],
  28. orderColumns: [],
  29. viewColumnsRaw: [],
  30. active: true,
  31. },
  32. ],
  33. })
  34. mockObjectManagerFrontendAttributesQuery({
  35. objectManagerFrontendAttributes: ticketCustomerObjectAttributes(),
  36. })
  37. mockTicketOverviewTicketCountQuery({
  38. ticketOverviews: [
  39. {
  40. id: convertToGraphQLId('Overview', 1),
  41. ticketCount: 111,
  42. },
  43. ],
  44. })
  45. mockTicketsByOverviewQuery({
  46. ticketsByOverview: generateObjectData('TicketConnection', {
  47. edges: [
  48. {
  49. node: createDummyTicket(),
  50. cursor: 'MjY',
  51. },
  52. ],
  53. pageInfo: {
  54. endCursor: 'MjY',
  55. hasNextPage: false,
  56. },
  57. }),
  58. })
  59. const view = await visitView('/tickets/my_assigned')
  60. await flushPromises()
  61. const results = await axe(view.html())
  62. expect(results).toHaveNoViolations()
  63. })
  64. })