Browse Source

Maintenance: Improve automocker resilience to different naming of operation keys.

Co-authored-by: Benjamin Scharf <bs@zammad.com>
Co-authored-by: Dusan Vuckovic <dv@zammad.com>
Dusan Vuckovic 7 months ago
parent
commit
8584996773

+ 6 - 5
app/frontend/apps/desktop/pages/ticket/__tests__/ticket-detail-view-a11y.spec.ts

@@ -1,5 +1,5 @@
 // Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
-import { describe } from 'vitest'
+
 import { axe } from 'vitest-axe'
 
 import { visitView } from '#tests/support/components/visitView.ts'
@@ -9,23 +9,24 @@ import { mockTicketArticlesQuery } from '#shared/entities/ticket/graphql/queries
 import { mockTicketQuery } from '#shared/entities/ticket/graphql/queries/ticket.mocks.ts'
 import { createDummyArticle } from '#shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
-import type { TicketArticle, TicketQuery } from '#shared/graphql/types.ts'
 
 describe.skip('ticket detail view', () => {
   it('has no accessibility violations in main content', async () => {
     mockPermissions(['ticket.agent'])
 
     mockTicketQuery({
-      ticket: createDummyTicket() as TicketQuery['ticket'],
+      ticket: createDummyTicket(),
     })
 
+    const testArticle = createDummyArticle()
+
     mockTicketArticlesQuery({
       articles: {
         totalCount: 1,
-        edges: [{ node: createDummyArticle() as TicketArticle }],
+        edges: [{ node: testArticle }],
       },
       firstArticles: {
-        edges: [],
+        edges: [{ node: testArticle }],
       },
     })
 

+ 11 - 6
app/frontend/apps/desktop/pages/ticket/__tests__/ticket-detail-view.spec.ts

@@ -1,7 +1,5 @@
 // Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
 
-import { describe } from 'vitest'
-
 import { visitView } from '#tests/support/components/visitView.ts'
 import { mockPermissions } from '#tests/support/mock-permissions.ts'
 
@@ -9,7 +7,6 @@ import { mockTicketArticlesQuery } from '#shared/entities/ticket/graphql/queries
 import { mockTicketQuery } from '#shared/entities/ticket/graphql/queries/ticket.mocks.ts'
 import { createDummyArticle } from '#shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
-import type { TicketArticle, TicketQuery } from '#shared/graphql/types.ts'
 
 describe('ticket detail view', () => {
   describe('errors', () => {
@@ -22,15 +19,20 @@ describe('ticket detail view', () => {
     mockPermissions(['ticket.agent'])
 
     mockTicketQuery({
-      ticket: createDummyTicket() as TicketQuery['ticket'],
+      ticket: createDummyTicket(),
+    })
+
+    const testArticle = createDummyArticle({
+      bodyWithUrls: 'foobar',
     })
 
     mockTicketArticlesQuery({
       articles: {
-        edges: [{ node: createDummyArticle() as TicketArticle }],
+        totalCount: 1,
+        edges: [{ node: testArticle }],
       },
       firstArticles: {
-        edges: [],
+        edges: [{ node: testArticle }],
       },
     })
   })
@@ -45,5 +47,8 @@ describe('ticket detail view', () => {
     ).toBeInTheDocument()
 
     expect(view.getByLabelText('Breadcrumb navigation')).toBeInTheDocument()
+
+    // TODO: Non sequitur
+    expect(view.getByTestId('article-content')).toHaveTextContent('foobar')
   })
 })

+ 4 - 6
app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleBubble/__tests__/ArticleBubbleActionList.spec.ts

@@ -6,7 +6,6 @@ import { renderComponent } from '#tests/support/components/index.ts'
 
 import { createDummyArticle } from '#shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
-import type { TicketQuery } from '#shared/graphql/types.ts'
 import { EnumTicketArticleSenderName } from '#shared/graphql/types.ts'
 
 import ArticleBubbleActionList from '#desktop/pages/ticket/components/TicketDetailView/ArticleBubble/ArticleBubbleActionList.vue'
@@ -36,11 +35,10 @@ const renderArticleBubbleActionList = () =>
 
         provide(
           TICKET_INFORMATION_KEY,
-          computed(
-            () =>
-              createDummyTicket({
-                defaultPolicy: { update: true, agentReadAccess: true },
-              }) as TicketQuery['ticket'],
+          computed(() =>
+            createDummyTicket({
+              defaultPolicy: { update: true, agentReadAccess: true },
+            }),
           ),
         )
 

+ 2 - 3
app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleBubble/__tests__/ArticleBubbleBlockedContentWarning.spec.ts

@@ -4,7 +4,6 @@ import { computed, provide } from 'vue'
 
 import { renderComponent } from '#tests/support/components/index.ts'
 
-import type { TicketById } from '#shared/entities/ticket/types.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
 
 import ArticleBubbleBlockedContentWarning from '#desktop/pages/ticket/components/TicketDetailView/ArticleBubble/ArticleBubbleBlockedContentWarning.vue'
@@ -21,7 +20,7 @@ describe('ArticleBubbleBlockedContentWarning', () => {
         provide(
           TICKET_INFORMATION_KEY,
           computed(() => {
-            return createDummyTicket() as unknown as TicketById
+            return createDummyTicket()
           }),
         )
       },
@@ -46,7 +45,7 @@ describe('ArticleBubbleBlockedContentWarning', () => {
         provide(
           TICKET_INFORMATION_KEY,
           computed(() => {
-            return createDummyTicket() as unknown as TicketById
+            return createDummyTicket()
           }),
         )
       },

+ 1 - 2
app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleBubble/__tests__/ArticleBubbleBody.spec.ts

@@ -4,7 +4,6 @@ import { computed, provide } from 'vue'
 
 import { renderComponent } from '#tests/support/components/index.ts'
 
-import type { TicketById } from '#shared/entities/ticket/types.ts'
 import { createDummyArticle } from '#shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
 
@@ -23,7 +22,7 @@ const renderBody = (
         provide(
           TICKET_INFORMATION_KEY,
           computed(() => {
-            return createDummyTicket() as unknown as TicketById
+            return createDummyTicket()
           }),
         )
         return {

+ 2 - 3
app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleBubble/__tests__/ArticleBubbleFooter.spec.ts

@@ -4,7 +4,6 @@ import { computed, provide } from 'vue'
 
 import { renderComponent } from '#tests/support/components/index.ts'
 
-import type { TicketById } from '#shared/entities/ticket/types.ts'
 import { createDummyArticle } from '#shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
 
@@ -20,7 +19,7 @@ describe('ArticleBubbleFooter', () => {
         provide(
           TICKET_INFORMATION_KEY,
           computed(() => {
-            return createDummyTicket() as unknown as TicketById
+            return createDummyTicket()
           }),
         )
         return {
@@ -42,7 +41,7 @@ describe('ArticleBubbleFooter', () => {
           provide(
             TICKET_INFORMATION_KEY,
             computed(() => {
-              return createDummyTicket() as unknown as TicketById
+              return createDummyTicket()
             }),
           )
           return {

+ 1 - 2
app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/ArticleBubble/__tests__/useEmailFileUrls.spec.ts

@@ -2,7 +2,6 @@
 
 import { ref } from 'vue'
 
-import type { TicketArticle } from '#shared/entities/ticket/types.ts'
 import { createDummyArticle } from '#shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
 
@@ -28,7 +27,7 @@ describe('useEmailFileUrls', () => {
               name: 'test.txt',
             },
           ],
-        }) as TicketArticle,
+        }),
       ),
     )
 

+ 1 - 2
app/frontend/apps/desktop/pages/ticket/components/TicketDetailView/__tests__/support/article-detail-view-mocks.ts

@@ -5,7 +5,6 @@ import { computed, type ComputedRef, provide } from 'vue'
 import { getQueryHandler } from '#tests/graphql/builders/__tests__/utils.ts'
 
 import { TicketArticlesDocument } from '#shared/entities/ticket/graphql/queries/ticket/articles.api.ts'
-import type { TicketById } from '#shared/entities/ticket/types.ts'
 import { createDummyArticle } from '#shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts'
 import { createDummyTicket } from '#shared/entities/ticket-article/__tests__/mocks/ticket.ts'
 import type {
@@ -24,7 +23,7 @@ export const mockDetailViewSetup = (data?: {
 
   provide(
     TICKET_INFORMATION_KEY,
-    computed(() => createDummyTicket(data?.ticket) as unknown as TicketById),
+    computed(() => createDummyTicket(data?.ticket)),
   )
 
   const handler = getQueryHandler<

+ 1 - 1
app/frontend/shared/entities/ticket-article/__tests__/mocks/ticket-articles.ts

@@ -92,5 +92,5 @@ export const createDummyArticle = (options?: {
       options?.securityState === undefined ? null : options.securityState,
     mediaErrorState:
       options?.mediaErrorState === undefined ? null : options.mediaErrorState,
-  })
+  }) as ArticleNode
 }

+ 1 - 1
app/frontend/shared/entities/ticket-article/__tests__/mocks/ticket.ts

@@ -151,5 +151,5 @@ export const createDummyTicket = (options?: {
     updateEscalationAt: null,
     initialChannel: null,
     mentions: options?.mentions || defaultMentions,
-  })
+  }) as TicketQuery['ticket']
 }

Some files were not shown because too many files changed in this diff