|
1 | 1 | import { setupAddElementDialogMock } from "../test-utils/AddElementDialogMock"; |
2 | 2 | import CardHost from "./CardHost.vue"; |
| 3 | +import CardSkeleton from "./CardSkeleton.vue"; |
3 | 4 | import ContentElementList from "./ContentElementList.vue"; |
4 | 5 | import { CardResponse } from "@/serverApi/v3"; |
5 | 6 | import { BoardPermissionChecks, defaultPermissions } from "@/types/board/Permissions"; |
| 7 | +import { mockedPiniaStoreTyping } from "@@/tests/test-utils"; |
6 | 8 | import setupDeleteConfirmationComposableMock from "@@/tests/test-utils/composable-mocks/setupDeleteConfirmationComposableMock"; |
7 | 9 | import { cardResponseFactory, fileElementResponseFactory } from "@@/tests/test-utils/factory"; |
8 | 10 | import { createTestingI18n, createTestingVuetify } from "@@/tests/test-utils/setup"; |
@@ -204,6 +206,24 @@ describe("CardHost", () => { |
204 | 206 |
|
205 | 207 | expect(useCardStore().duplicateCard).toHaveBeenCalledWith({ cardId }); |
206 | 208 | }); |
| 209 | + |
| 210 | + it("should show card skeleton while duplicating", async () => { |
| 211 | + mockedBoardPermissions.hasEditPermission.value = true; |
| 212 | + const { wrapper } = setup(); |
| 213 | + const cardStore = mockedPiniaStoreTyping(useCardStore); |
| 214 | + cardStore.duplicateCard.mockResolvedValueOnce(); |
| 215 | + |
| 216 | + const duplicateButton = wrapper.findComponent(KebabMenuActionDuplicate); |
| 217 | + await duplicateButton.trigger("click"); |
| 218 | + |
| 219 | + const cardSkeletons = wrapper.findAllComponents(CardSkeleton); |
| 220 | + expect(cardSkeletons).toHaveLength(1); |
| 221 | + |
| 222 | + await wrapper.vm.$nextTick(); |
| 223 | + |
| 224 | + const cardSkeletonsAfterDuplicationFinished = wrapper.findAllComponents(CardSkeleton); |
| 225 | + expect(cardSkeletonsAfterDuplicationFinished).toHaveLength(0); |
| 226 | + }); |
207 | 227 | }); |
208 | 228 |
|
209 | 229 | describe("when users clicks share link menu", () => { |
|
0 commit comments