From b8c9e575d05c3bf7c83359e95cbd1ea8b64ee079 Mon Sep 17 00:00:00 2001 From: Johannes Lueder Date: Fri, 5 Dec 2025 09:04:55 +0100 Subject: [PATCH 1/5] vCustomDialog --> CustomDialog --- .../ProvisioningOptionsPage.unit.ts | 4 +-- .../ProvisioningOptionsPage.vue | 6 ++-- .../SchoolYearChangeSection.vue | 10 +++--- .../copy-result-modal/CopyResultModal.unit.ts | 26 +++++++------- .../copy-result-modal/CopyResultModal.vue | 6 ++-- src/components/molecules/RoomModal.unit.ts | 16 ++++----- src/components/molecules/RoomModal.vue | 11 ++---- src/components/molecules/TaskItemMenu.unit.ts | 4 +-- src/components/molecules/TaskItemMenu.vue | 8 ++--- ...tomDialog.unit.ts => CustomDialog.unit.ts} | 4 +-- .../{vCustomDialog.vue => CustomDialog.vue} | 0 .../administration/AuthSystems.unit.js | 6 ++-- .../organisms/administration/AuthSystems.vue | 8 ++--- .../organisms/administration/SchoolPolicy.vue | 6 ++-- .../administration/SchoolPolicyFormDialog.vue | 6 ++-- .../organisms/administration/SchoolTerms.vue | 6 ++-- .../administration/SchoolTermsFormDialog.vue | 8 ++--- src/components/share/ImportFlow.unit.ts | 36 +++++++++---------- src/components/share/ImportModal.unit.ts | 6 ++-- src/components/share/ImportModal.vue | 6 ++-- .../share/SelectDestinationModal.vue | 6 ++-- src/components/share/ShareModal.unit.ts | 8 ++--- src/components/share/ShareModal.vue | 6 ++-- .../templates/RoomDashboard.unit.ts | 4 +-- src/components/templates/RoomDashboard.vue | 8 ++--- ...rnalToolElementConfigurationDialog.unit.ts | 4 +-- ...ExternalToolElementConfigurationDialog.vue | 6 ++-- .../course-sync/EndCourseSyncDialog.vue | 6 ++-- .../course-sync/GroupSelectionDialog.vue | 6 ++-- .../StartExistingCourseSyncDialog.unit.ts | 12 +++---- .../StartExistingCourseSyncDialog.vue | 6 ++-- .../administration/ClassOverview.page.unit.ts | 6 ++-- .../administration/ClassOverview.page.vue | 6 ++-- .../administration/Migration.page.unit.ts | 6 ++-- src/pages/administration/Migration.page.vue | 10 +++--- .../administration/RoomsOverview.page.unit.ts | 6 ++-- .../administration/RoomsOverview.page.vue | 6 ++-- .../CourseRoomDetails.page.unit.ts | 4 +-- .../course-rooms/CourseRoomDetails.page.vue | 16 ++++----- .../CourseRoomOverview.page.unit.js | 2 +- .../tools/RoomExternalToolsErrorDialog.vue | 6 ++-- .../tools/RoomExternalToolsSection.vue | 6 ++-- 42 files changed, 161 insertions(+), 168 deletions(-) rename src/components/organisms/{vCustomDialog.unit.ts => CustomDialog.unit.ts} (97%) rename src/components/organisms/{vCustomDialog.vue => CustomDialog.vue} (100%) diff --git a/src/components/administration/ProvisioningOptionsPage.unit.ts b/src/components/administration/ProvisioningOptionsPage.unit.ts index a1938e1e06..ca336d8aae 100644 --- a/src/components/administration/ProvisioningOptionsPage.unit.ts +++ b/src/components/administration/ProvisioningOptionsPage.unit.ts @@ -1,5 +1,5 @@ import ProvisioningOptionsPage from "./ProvisioningOptionsPage.vue"; -import VCustomDialog from "@/components/organisms/vCustomDialog.vue"; +import CustomDialog from "@/components/organisms/CustomDialog.vue"; import { ConfigResponse } from "@/serverApi/v3"; import { THEME_KEY } from "@/utils/inject"; import { createTestEnvStore, provisioningOptionsDataFactory } from "@@/tests/test-utils"; @@ -296,7 +296,7 @@ describe("ProvisioningOptionsPage", () => { await saveButton.trigger("click"); - const dialog = wrapper.findComponent(VCustomDialog); + const dialog = wrapper.findComponent(CustomDialog); expect(dialog.props("isOpen")).toEqual(true); }); diff --git a/src/components/administration/ProvisioningOptionsPage.vue b/src/components/administration/ProvisioningOptionsPage.vue index 9580f65f94..43fc9bbbcf 100644 --- a/src/components/administration/ProvisioningOptionsPage.vue +++ b/src/components/administration/ProvisioningOptionsPage.vue @@ -89,7 +89,7 @@ - - + diff --git a/src/components/atoms/vRoomEmptyAvatar.unit.ts b/src/components/atoms/RoomEmptyAvatar.unit.ts similarity index 91% rename from src/components/atoms/vRoomEmptyAvatar.unit.ts rename to src/components/atoms/RoomEmptyAvatar.unit.ts index 78bd3cc067..3c39937594 100644 --- a/src/components/atoms/vRoomEmptyAvatar.unit.ts +++ b/src/components/atoms/RoomEmptyAvatar.unit.ts @@ -1,11 +1,11 @@ -import vRoomEmptyAvatar from "./vRoomEmptyAvatar.vue"; +import RoomEmptyAvatar from "./RoomEmptyAvatar.vue"; import { createTestingI18n, createTestingVuetify } from "@@/tests/test-utils/setup"; import { mount } from "@vue/test-utils"; import { nextTick } from "vue"; -describe("vRoomEmptyAvatar", () => { +describe("RoomEmptyAvatar", () => { const setup = () => { - const wrapper = mount(vRoomEmptyAvatar, { + const wrapper = mount(RoomEmptyAvatar, { global: { plugins: [createTestingVuetify(), createTestingI18n()], }, diff --git a/src/components/atoms/vRoomEmptyAvatar.vue b/src/components/atoms/RoomEmptyAvatar.vue similarity index 100% rename from src/components/atoms/vRoomEmptyAvatar.vue rename to src/components/atoms/RoomEmptyAvatar.vue diff --git a/src/components/atoms/vRoomDeleteAvatar.unit.ts b/src/components/atoms/vRoomDeleteAvatar.unit.ts deleted file mode 100644 index 3f3323ba4e..0000000000 --- a/src/components/atoms/vRoomDeleteAvatar.unit.ts +++ /dev/null @@ -1,42 +0,0 @@ -import vRoomDeleteAvatar from "./vRoomDeleteAvatar.vue"; -import { createTestingI18n, createTestingVuetify } from "@@/tests/test-utils/setup"; -import { mount } from "@vue/test-utils"; - -describe("vRoomDeleteAvatar", () => { - const setup = () => { - const wrapper = mount(vRoomDeleteAvatar, { - global: { - plugins: [createTestingVuetify(), createTestingI18n()], - }, - }); - return { wrapper }; - }; - it("should emit 'deleteAvatar' event when an element drops onto it", async () => { - const { wrapper } = setup(); - const avatarComponent = wrapper.find(".delete-avatar"); - - avatarComponent.trigger("drop"); - await wrapper.vm.$nextTick(); - - const emitted = wrapper.emitted(); - - expect(emitted["deleteAvatar"]).toHaveLength(1); - }); - - it("should change its class name while 'drag' events triggered", async () => { - const { wrapper } = setup(); - const avatarComponent = wrapper.find(".delete-avatar"); - - expect(avatarComponent.element.className).not.toContain("hovered-delete-avatar"); - - avatarComponent.trigger("dragenter"); - await wrapper.vm.$nextTick(); - - expect(avatarComponent.element.className).toContain("hovered-delete-avatar"); - - avatarComponent.trigger("dragleave"); - await wrapper.vm.$nextTick(); - expect(avatarComponent.element.className).not.toContain("hovered-delete-avatar"); - expect(avatarComponent.element.className).toContain("delete-avatar"); - }); -}); diff --git a/src/components/atoms/vRoomDeleteAvatar.vue b/src/components/atoms/vRoomDeleteAvatar.vue deleted file mode 100644 index f02924db81..0000000000 --- a/src/components/atoms/vRoomDeleteAvatar.vue +++ /dev/null @@ -1,55 +0,0 @@ - - - - - diff --git a/src/components/molecules/vCustomDoublePanels.unit.ts b/src/components/molecules/DoublePanels.unit.ts similarity index 89% rename from src/components/molecules/vCustomDoublePanels.unit.ts rename to src/components/molecules/DoublePanels.unit.ts index 9ceae4370d..8e74f85549 100644 --- a/src/components/molecules/vCustomDoublePanels.unit.ts +++ b/src/components/molecules/DoublePanels.unit.ts @@ -1,9 +1,9 @@ -import vCustomDoublePanels from "./vCustomDoublePanels.vue"; +import DoublePanels from "./DoublePanels.vue"; import { createTestingI18n, createTestingVuetify } from "@@/tests/test-utils/setup"; import { mount } from "@vue/test-utils"; import { VExpansionPanels } from "vuetify/lib/components/index"; -describe("@/components/molecules/vCustomDoublePanels", () => { +describe("@/components/molecules/DoublePanels", () => { const propsData = { panelOneCount: 1, panelTwoCount: 13, @@ -57,7 +57,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { const slot2 = "
"; it("Should render its slots", () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -72,7 +72,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Accepts valid panel count props", () => { - const { validator } = vCustomDoublePanels.props.panelOneCount; + const { validator } = DoublePanels.props.panelOneCount; const validCount = 1234; const invalidCounts = [-1, undefined, {}]; @@ -84,7 +84,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Accepts valid status props", () => { - const { validator } = vCustomDoublePanels.props.status; + const { validator } = DoublePanels.props.status; const validStati = [null, "completed", "pending", "error"]; const invalidStatus = "Invalid status"; expect(validator(invalidStatus)).toBe(false); @@ -94,7 +94,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Accepts valid expanded props", () => { - const { validator } = vCustomDoublePanels.props.expandedDefault; + const { validator } = DoublePanels.props.expandedDefault; const validProp1 = 0; const validProp2 = 1; const invalidPropValues = [-1, undefined, {}, 2]; @@ -108,7 +108,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Should render skeleton loader when the status is pending", () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -119,7 +119,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Should render only panel 1 disabled, if panel 2 has data", () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -133,7 +133,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Should render only panel 2 disabled, if panel 1 has data", () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -147,7 +147,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Should open panel 2, if panel 1 disabled", () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -162,7 +162,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Should open panel 1, if panel 2 disabled", () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -177,7 +177,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Shouldn't render headers, if it's empty", () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -188,7 +188,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("Should trigger toggle on panel header click", async () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, @@ -202,7 +202,7 @@ describe("@/components/molecules/vCustomDoublePanels", () => { }); it("'toggle()' should collapse expanded panel and expand the collapsed one", async () => { - const wrapper = mount(vCustomDoublePanels, { + const wrapper = mount(DoublePanels, { global: { plugins: [createTestingI18n(), createTestingVuetify()], }, diff --git a/src/components/molecules/vCustomDoublePanels.vue b/src/components/molecules/DoublePanels.vue similarity index 100% rename from src/components/molecules/vCustomDoublePanels.vue rename to src/components/molecules/DoublePanels.vue diff --git a/src/components/molecules/vImportUsersMatchSearch.unit.ts b/src/components/molecules/ImportUsersMatchSearch.unit.ts similarity index 97% rename from src/components/molecules/vImportUsersMatchSearch.unit.ts rename to src/components/molecules/ImportUsersMatchSearch.unit.ts index 6c918a0e97..31b0f55353 100644 --- a/src/components/molecules/vImportUsersMatchSearch.unit.ts +++ b/src/components/molecules/ImportUsersMatchSearch.unit.ts @@ -1,4 +1,4 @@ -import vImportUsersMatchSearch from "./vImportUsersMatchSearch.vue"; +import ImportUsersMatchSearch from "./ImportUsersMatchSearch.vue"; import { ImportUserResponse, ImportUserResponseRoleNamesEnum, @@ -32,9 +32,9 @@ const testProps = { ldapSource: "LDAP", }; -const getWrapper = (props: ComponentProps, options?: object) => { +const getWrapper = (props: ComponentProps, options?: object) => { vi.spyOn(importUsersModule, "fetchAllUsers").mockResolvedValue(); - return mount(vImportUsersMatchSearch, { + return mount(ImportUsersMatchSearch, { global: { plugins: [createTestingVuetify(), createTestingI18n()], provide: { @@ -48,7 +48,7 @@ const getWrapper = (props: ComponentProps, optio }); }; -describe("@/components/molecules/vImportUsersMatchSearch", () => { +describe("@/components/molecules/ImportUsersMatchSearch", () => { beforeEach(() => { setupStores({ importUsersModule: ImportUsersModule }); }); diff --git a/src/components/molecules/vImportUsersMatchSearch.vue b/src/components/molecules/ImportUsersMatchSearch.vue similarity index 100% rename from src/components/molecules/vImportUsersMatchSearch.vue rename to src/components/molecules/ImportUsersMatchSearch.vue diff --git a/src/components/molecules/vRoomGroupAvatar.unit.ts b/src/components/molecules/RoomGroupAvatar.unit.ts similarity index 97% rename from src/components/molecules/vRoomGroupAvatar.unit.ts rename to src/components/molecules/RoomGroupAvatar.unit.ts index a6294d68c1..efc5b7d7ed 100644 --- a/src/components/molecules/vRoomGroupAvatar.unit.ts +++ b/src/components/molecules/RoomGroupAvatar.unit.ts @@ -1,4 +1,4 @@ -import vRoomGroupAvatar from "./vRoomGroupAvatar.vue"; +import RoomGroupAvatar from "./RoomGroupAvatar.vue"; import RoomAvatar from "@/components/atoms/RoomAvatar.vue"; import RoomAvatarIterator from "@/components/organisms/RoomAvatarIterator.vue"; import { createTestingI18n, createTestingVuetify } from "@@/tests/test-utils/setup"; @@ -77,7 +77,7 @@ const getWrapper = ( } = propsData, options?: object ) => - mount(vRoomGroupAvatar, { + mount(RoomGroupAvatar, { global: { plugins: [createTestingVuetify(), createTestingI18n()], }, @@ -85,7 +85,7 @@ const getWrapper = ( ...options, }); -describe("vRoomGroupAvatar", () => { +describe("RoomGroupAvatar", () => { it("should display the title", () => { const wrapper = getWrapper(propsData); const labelElement = wrapper.find(".subtitle").element as HTMLElement; diff --git a/src/components/molecules/vRoomGroupAvatar.vue b/src/components/molecules/RoomGroupAvatar.vue similarity index 100% rename from src/components/molecules/vRoomGroupAvatar.vue rename to src/components/molecules/RoomGroupAvatar.vue diff --git a/src/components/molecules/RoomModal.unit.ts b/src/components/molecules/RoomModal.unit.ts index 8f91f2cbe4..a84f11f6ac 100644 --- a/src/components/molecules/RoomModal.unit.ts +++ b/src/components/molecules/RoomModal.unit.ts @@ -1,6 +1,6 @@ import RoomModal from "./RoomModal.vue"; -import RoomAvatarIterator from "@/components/organisms/RoomAvatarIterator.vue"; import CustomDialog from "@/components/organisms/CustomDialog.vue"; +import RoomAvatarIterator from "@/components/organisms/RoomAvatarIterator.vue"; import { courseRoomListModule } from "@/store"; import CourseRoomListModule from "@/store/course-room-list"; import { createTestingI18n, createTestingVuetify } from "@@/tests/test-utils/setup"; diff --git a/src/components/molecules/RoomTaskCard.vue b/src/components/molecules/RoomTaskCard.vue index 62464f513e..53aa4bab9c 100644 --- a/src/components/molecules/RoomTaskCard.vue +++ b/src/components/molecules/RoomTaskCard.vue @@ -57,7 +57,7 @@ {{ chip.name }} -