ticket-overviews-a11y.spec.ts 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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 { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
  10. import { EnumOrderDirection } from '#shared/graphql/types.ts'
  11. import { convertToGraphQLId } from '#shared/graphql/utils.ts'
  12. import { mockTicketsCachedByOverviewQuery } from '#desktop/entities/ticket/graphql/queries/ticketsCachedByOverview.mocks.ts'
  13. import { mockUserCurrentTicketOverviewsQuery } from '#desktop/entities/ticket/graphql/queries/userCurrentTicketOverviews.mocks.ts'
  14. describe('ticket overviews view', () => {
  15. it('has no accessibility violations in main content', async () => {
  16. mockPermissions(['ticket.agent'])
  17. mockUserCurrentTicketOverviewsQuery({
  18. userCurrentTicketOverviews: [
  19. {
  20. id: convertToGraphQLId('Overview', 1),
  21. name: 'My Assigned Tickets',
  22. link: 'my_assigned',
  23. prio: 1000,
  24. orderBy: 'created_at',
  25. orderDirection: EnumOrderDirection.Ascending,
  26. viewColumnsRaw: [],
  27. active: true,
  28. },
  29. ],
  30. })
  31. mockObjectManagerFrontendAttributesQuery({
  32. objectManagerFrontendAttributes: ticketCustomerObjectAttributes(),
  33. })
  34. mockTicketsCachedByOverviewQuery({
  35. ticketsCachedByOverview: generateObjectData('TicketConnection', {
  36. edges: [
  37. {
  38. node: createDummyTicket(),
  39. cursor: 'MjY',
  40. },
  41. ],
  42. pageInfo: {
  43. endCursor: 'MjY',
  44. hasNextPage: false,
  45. },
  46. }),
  47. })
  48. const view = await visitView('/tickets/my_assigned')
  49. await flushPromises()
  50. const results = await axe(view.html())
  51. expect(results).toHaveNoViolations()
  52. })
  53. })