From 4afbe18621c0282b1325806603e099c5f0253d12 Mon Sep 17 00:00:00 2001 From: Laurent Gay Date: Thu, 25 Sep 2025 18:24:21 +0200 Subject: [PATCH] perform front-end unit test from "view/Admin" - #1805 --- .../User/providerValidation.spec.ts | 33 +++++++++++++------ .../adminGroupProfile.spec.ts.snap | 11 ++++--- .../admin/adminGroupProfile.spec.ts | 18 +++++++++- 3 files changed, 46 insertions(+), 16 deletions(-) diff --git a/tests/unit/specs/components/User/providerValidation.spec.ts b/tests/unit/specs/components/User/providerValidation.spec.ts index d09d10cff..6efbb911f 100644 --- a/tests/unit/specs/components/User/providerValidation.spec.ts +++ b/tests/unit/specs/components/User/providerValidation.spec.ts @@ -1,4 +1,4 @@ -import { beforeEach, describe, it, expect } from "vitest"; +import { beforeEach, describe, it, expect, vi } from "vitest"; import { enUS } from "date-fns/locale"; import { routes } from "@/router"; import { createRouter, createWebHistory, Router } from "vue-router"; @@ -9,6 +9,12 @@ import { Oruga } from "@oruga-ui/oruga-next"; import flushPromises from "flush-promises"; import { UPDATE_CURRENT_USER_CLIENT, LOGGED_USER } from "@/graphql/user"; +vi.mock("@/utils/html", () => { + return { + getValueFromMeta: (name: string) => name, + escapeHtml: (html: string) => html, + }; +}); config.global.plugins.push(Oruga); let router: Router; @@ -22,18 +28,24 @@ beforeEach(async () => { // await router.isReady(); }); -const update_mock = { - data: {}, -}; - const logged_mock = { - data: {}, + data: { + loggedUser: { + __typename: "User", + defaultActor: { + __typename: "Person", + id: "1", + unreadConversationsCount: 0, + }, + id: "1", + }, + }, }; -const generateWrapper = (mock_update = {}, mock_logged = {}) => { +const generateWrapper = (mock_logged = {}) => { const global_data = getMockClient([ - [UPDATE_CURRENT_USER_CLIENT, mock_update], [LOGGED_USER, mock_logged], + UPDATE_CURRENT_USER_CLIENT, ]); global_data.provide.dateFnsLocale = enUS; global_data.plugins = [router]; @@ -49,11 +61,12 @@ const generateWrapper = (mock_update = {}, mock_logged = {}) => { describe("ProviderValidation", () => { it("Show simple", async () => { - const wrapper = generateWrapper(update_mock, logged_mock); + const wrapper = generateWrapper(logged_mock); await wrapper.vm.$nextTick(); await flushPromises(); expect(wrapper.html()).toMatchSnapshot(); - expect(requestHandlers.handle_0).toHaveBeenCalledTimes(0); expect(requestHandlers.handle_1).toHaveBeenCalledTimes(0); + expect(requestHandlers.handle_0).toHaveBeenCalledTimes(1); + expect(requestHandlers.handle_0).toHaveBeenCalledWith({}); }); }); diff --git a/tests/unit/specs/components/admin/__snapshots__/adminGroupProfile.spec.ts.snap b/tests/unit/specs/components/admin/__snapshots__/adminGroupProfile.spec.ts.snap index 9502a86f1..712aa978c 100644 --- a/tests/unit/specs/components/admin/__snapshots__/adminGroupProfile.spec.ts.snap +++ b/tests/unit/specs/components/admin/__snapshots__/adminGroupProfile.spec.ts.snap @@ -3,12 +3,12 @@ exports[`AdminGroupProfile > Show simple 1`] = ` "
-
+
Group name
-

@group_name

+

@group_name@domain

@@ -60,7 +60,7 @@ exports[`AdminGroupProfile > Show simple 1`] = ` Domain - Local + domain Uploaded media size @@ -71,8 +71,9 @@ exports[`AdminGroupProfile > Show simple 1`] = `
- - +

1 members

diff --git a/tests/unit/specs/components/admin/adminGroupProfile.spec.ts b/tests/unit/specs/components/admin/adminGroupProfile.spec.ts index 927648ec4..8f37ca313 100644 --- a/tests/unit/specs/components/admin/adminGroupProfile.spec.ts +++ b/tests/unit/specs/components/admin/adminGroupProfile.spec.ts @@ -9,8 +9,12 @@ import AdminGroupProfile from "@/views/Admin/AdminGroupProfile.vue"; import { config, mount } from "@vue/test-utils"; import { Oruga } from "@oruga-ui/oruga-next"; import flushPromises from "flush-promises"; +import { dialogPlugin } from "@/plugins/dialog"; +import { notifierPlugin } from "@/plugins/notifier"; config.global.plugins.push(Oruga); +config.global.plugins.push(dialogPlugin); +config.global.plugins.push(notifierPlugin); let router: Router; @@ -51,7 +55,7 @@ const group_mock = { __typename: "Group", avatar: null, banner: null, - domain: null, + domain: "domain", id: "1125368", manuallyApprovesFollowers: false, mediaSize: 0, @@ -130,5 +134,17 @@ describe("AdminGroupProfile", () => { postsLimit: 10, postsPage: 1, }); + + wrapper.find('button[type="button"]').trigger("click"); + await flushPromises(); + wrapper.vm.suspendProfile({ id: "12346" }); + await flushPromises(); + expect(requestHandlers.handle_0).toHaveBeenCalledTimes(1); + expect(requestHandlers.handle_1).toHaveBeenCalledTimes(0); + expect(requestHandlers.handle_2).toHaveBeenCalledTimes(1); + expect(requestHandlers.handle_3).toHaveBeenCalledTimes(0); + expect(requestHandlers.handle_2).toHaveBeenCalledWith({ + id: "12346", + }); }); });