gitscope
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/components/entity-table/tests/entity-table.test.tsx · v0.3.0-alpha7
Source
1 d21d2e2 Mrdn 2y ago import { afterEach, describe, expect, it } from 'vitest'
2 d21d2e2 Mrdn 2y ago import { act, cleanup, render, screen } from '@testing-library/react'
3 d21d2e2 Mrdn 2y ago import user from "@testing-library/user-event"
4 d21d2e2 Mrdn 2y ago import { EntityTable } from '..'
5 d21d2e2 Mrdn 2y ago import { fetchMockApi } from './fetch-entity.mock'
6 d21d2e2 Mrdn 2y ago import { mockColumns } from './columns.mock'
7 d21d2e2 Mrdn 2y ago import { QueryClientProvider } from '@tanstack/react-query'
8 d21d2e2 Mrdn 2y ago import { queryClient } from '@marzneshin/utils'
9 d21d2e2 Mrdn 2y ago import '@testing-library/jest-dom'
10 d21d2e2 Mrdn 2y ago import {
11 d21d2e2 Mrdn 2y ago MockDeleteConfirmationDialog,
12 d21d2e2 Mrdn 2y ago MockDialog,
13 d21d2e2 Mrdn 2y ago MockSettingsDialog
14 d21d2e2 Mrdn 2y ago } from './dialogs.mock'
15 d21d2e2 Mrdn 2y ago
16 d21d2e2 Mrdn 2y ago
17 d21d2e2 Mrdn 2y ago
18 d21d2e2 Mrdn 2y ago describe("Entity Table", () => {
19 d21d2e2 Mrdn 2y ago afterEach(() => {
20 d21d2e2 Mrdn 2y ago cleanup()
21 d21d2e2 Mrdn 2y ago })
22 d21d2e2 Mrdn 2y ago
23 d21d2e2 Mrdn 2y ago it('Renders Successfuly', () => {
24 d21d2e2 Mrdn 2y ago const entityTable = render(
25 d21d2e2 Mrdn 2y ago <QueryClientProvider client={queryClient}>
26 d21d2e2 Mrdn 2y ago <EntityTable
27 d21d2e2 Mrdn 2y ago fetchEntity={fetchMockApi}
28 d21d2e2 Mrdn 2y ago MutationDialog={MockDialog}
29 d21d2e2 Mrdn 2y ago DeleteConfirmationDialog={MockDeleteConfirmationDialog}
30 d21d2e2 Mrdn 2y ago SettingsDialog={MockSettingsDialog}
31 d21d2e2 Mrdn 2y ago columnsFn={mockColumns}
32 d21d2e2 Mrdn 2y ago filteredColumn="name"
33 d21d2e2 Mrdn 2y ago entityKey="users"
34 d21d2e2 Mrdn 2y ago />
35 d21d2e2 Mrdn 2y ago </QueryClientProvider>
36 d21d2e2 Mrdn 2y ago )
37 d21d2e2 Mrdn 2y ago
38 d21d2e2 Mrdn 2y ago expect(entityTable).toBeTruthy()
39 d21d2e2 Mrdn 2y ago })
40 d21d2e2 Mrdn 2y ago
41 d21d2e2 Mrdn 2y ago it('Mutation Dialog Invoked for Entity Creation when clicked on Create button', async () => {
42 d21d2e2 Mrdn 2y ago const entityTable = render(
43 d21d2e2 Mrdn 2y ago <QueryClientProvider client={queryClient}>
44 d21d2e2 Mrdn 2y ago <EntityTable
45 d21d2e2 Mrdn 2y ago fetchEntity={fetchMockApi}
46 d21d2e2 Mrdn 2y ago MutationDialog={MockDialog}
47 d21d2e2 Mrdn 2y ago DeleteConfirmationDialog={MockDeleteConfirmationDialog}
48 d21d2e2 Mrdn 2y ago SettingsDialog={MockSettingsDialog}
49 d21d2e2 Mrdn 2y ago columnsFn={mockColumns}
50 d21d2e2 Mrdn 2y ago filteredColumn="name"
51 d21d2e2 Mrdn 2y ago entityKey="users"
52 d21d2e2 Mrdn 2y ago />
53 d21d2e2 Mrdn 2y ago </QueryClientProvider>
54 d21d2e2 Mrdn 2y ago )
55 d21d2e2 Mrdn 2y ago const createBtn = await entityTable.findByLabelText('create-users')
56 d21d2e2 Mrdn 2y ago await user.click(createBtn)
57 d21d2e2 Mrdn 2y ago
58 d21d2e2 Mrdn 2y ago const createDialog = await screen.findByTestId("create-mutation-dialog")
59 d21d2e2 Mrdn 2y ago expect(createDialog).toBeTruthy()
60 d21d2e2 Mrdn 2y ago expect(createDialog).toBeInTheDocument();
61 d21d2e2 Mrdn 2y ago
62 d21d2e2 Mrdn 2y ago })
63 d21d2e2 Mrdn 2y ago
64 d21d2e2 Mrdn 2y ago it('Mutation Dialog Invoked for Entity Edition when clicked on Edit button', async () => {
65 d21d2e2 Mrdn 2y ago const entityTable = render(
66 d21d2e2 Mrdn 2y ago <QueryClientProvider client={queryClient}>
67 d21d2e2 Mrdn 2y ago <EntityTable
68 d21d2e2 Mrdn 2y ago fetchEntity={fetchMockApi}
69 d21d2e2 Mrdn 2y ago MutationDialog={MockDialog}
70 d21d2e2 Mrdn 2y ago DeleteConfirmationDialog={MockDeleteConfirmationDialog}
71 d21d2e2 Mrdn 2y ago SettingsDialog={MockSettingsDialog}
72 d21d2e2 Mrdn 2y ago columnsFn={mockColumns}
73 d21d2e2 Mrdn 2y ago filteredColumn="name"
74 d21d2e2 Mrdn 2y ago entityKey="users"
75 d21d2e2 Mrdn 2y ago />
76 d21d2e2 Mrdn 2y ago </QueryClientProvider>
77 d21d2e2 Mrdn 2y ago )
78 d21d2e2 Mrdn 2y ago const editBtn = await entityTable.findByRole('button', { name: 'Open menu' });
79 d21d2e2 Mrdn 2y ago await act(async () => await user.click(editBtn))
80 d21d2e2 Mrdn 2y ago
81 d21d2e2 Mrdn 2y ago const menuItem = await screen.findByRole('menuitem', { name: 'edit' });
82 d21d2e2 Mrdn 2y ago await act(async () => await user.click(menuItem));
83 d21d2e2 Mrdn 2y ago
84 d21d2e2 Mrdn 2y ago const editDialog = await screen.findByTestId("edit-mutation-dialog")
85 d21d2e2 Mrdn 2y ago expect(editDialog).toBeTruthy()
86 d21d2e2 Mrdn 2y ago expect(editDialog).toBeInTheDocument();
87 d21d2e2 Mrdn 2y ago
88 d21d2e2 Mrdn 2y ago })
89 d21d2e2 Mrdn 2y ago it('Settings Dialog Invoked for to observe related data to the entity when clicked on row of the entity on table', async () => {
90 d21d2e2 Mrdn 2y ago const entityTable = render(
91 d21d2e2 Mrdn 2y ago <QueryClientProvider client={queryClient}>
92 d21d2e2 Mrdn 2y ago <EntityTable
93 d21d2e2 Mrdn 2y ago fetchEntity={fetchMockApi}
94 d21d2e2 Mrdn 2y ago MutationDialog={MockDialog}
95 d21d2e2 Mrdn 2y ago DeleteConfirmationDialog={MockDeleteConfirmationDialog}
96 d21d2e2 Mrdn 2y ago SettingsDialog={MockSettingsDialog}
97 d21d2e2 Mrdn 2y ago columnsFn={mockColumns}
98 d21d2e2 Mrdn 2y ago filteredColumn="name"
99 d21d2e2 Mrdn 2y ago entityKey="users"
100 d21d2e2 Mrdn 2y ago />
101 d21d2e2 Mrdn 2y ago </QueryClientProvider>
102 d21d2e2 Mrdn 2y ago )
103 d21d2e2 Mrdn 2y ago
104 d21d2e2 Mrdn 2y ago const openBtn = await entityTable.findByRole('button', { name: 'Open menu' });
105 d21d2e2 Mrdn 2y ago await act(async () => await user.click(openBtn))
106 d21d2e2 Mrdn 2y ago
107 d21d2e2 Mrdn 2y ago const menuItem = await screen.findByRole('menuitem', { name: 'open' });
108 d21d2e2 Mrdn 2y ago await act(async () => await user.click(menuItem));
109 d21d2e2 Mrdn 2y ago
110 d21d2e2 Mrdn 2y ago const settingsDialog = await screen.findByTestId("settings-dialog")
111 d21d2e2 Mrdn 2y ago expect(settingsDialog).toBeTruthy()
112 d21d2e2 Mrdn 2y ago expect(settingsDialog).toBeInTheDocument();
113 d21d2e2 Mrdn 2y ago })
114 d21d2e2 Mrdn 2y ago
115 d21d2e2 Mrdn 2y ago it('Delete Confirmation Dialog Invoked for confirming the deletion of chosen entity from action list drop down by clicking on Delete button', async () => {
116 d21d2e2 Mrdn 2y ago const entityTable = render(
117 d21d2e2 Mrdn 2y ago <QueryClientProvider client={queryClient}>
118 d21d2e2 Mrdn 2y ago <EntityTable
119 d21d2e2 Mrdn 2y ago fetchEntity={fetchMockApi}
120 d21d2e2 Mrdn 2y ago MutationDialog={MockDialog}
121 d21d2e2 Mrdn 2y ago DeleteConfirmationDialog={MockDeleteConfirmationDialog}
122 d21d2e2 Mrdn 2y ago SettingsDialog={MockSettingsDialog}
123 d21d2e2 Mrdn 2y ago columnsFn={mockColumns}
124 d21d2e2 Mrdn 2y ago filteredColumn="name"
125 d21d2e2 Mrdn 2y ago entityKey="users"
126 d21d2e2 Mrdn 2y ago />
127 d21d2e2 Mrdn 2y ago </QueryClientProvider>
128 d21d2e2 Mrdn 2y ago )
129 d21d2e2 Mrdn 2y ago
130 d21d2e2 Mrdn 2y ago const deleteBtn = await entityTable.findByRole('button', { name: 'Open menu' });
131 d21d2e2 Mrdn 2y ago await act(async () => await user.click(deleteBtn))
132 d21d2e2 Mrdn 2y ago
133 d21d2e2 Mrdn 2y ago const menuItem = await screen.findByRole('menuitem', { name: 'delete' });
134 d21d2e2 Mrdn 2y ago await act(async () => await user.click(menuItem));
135 d21d2e2 Mrdn 2y ago
136 d21d2e2 Mrdn 2y ago const deleteConfirmationDialog = await screen.findByTestId("delete-confirmation-dialog")
137 d21d2e2 Mrdn 2y ago expect(deleteConfirmationDialog).toBeTruthy()
138 d21d2e2 Mrdn 2y ago expect(deleteConfirmationDialog).toBeInTheDocument();
139 d21d2e2 Mrdn 2y ago })
140 d21d2e2 Mrdn 2y ago
141 d21d2e2 Mrdn 2y ago describe('Entity Table Pagination', () => {
142 d21d2e2 Mrdn 2y ago it('Paginate entities', () => { })
143 d21d2e2 Mrdn 2y ago })
144 d21d2e2 Mrdn 2y ago })