perform front-end unit test from "view/Admin" - #1805
This commit is contained in:
@@ -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({});
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3,12 +3,12 @@
|
||||
exports[`AdminGroupProfile > Show simple 1`] = `
|
||||
"<div class="section">
|
||||
<breadcrumbs-nav links="[object Object],[object Object],[object Object]"></breadcrumbs-nav>
|
||||
<div><a href="/@group_name" class="mx-auto max-w-sm block mb-2">
|
||||
<div><a href="/@group_name@domain" class="mx-auto max-w-sm block mb-2">
|
||||
<div data-v-b0ff4ece="" class="bg-white dark:bg-mbz-purple rounded-lg flex space-x-4 items-center flex-col p-4 shadow-md sm:p-8 pb-10 w-80">
|
||||
<div data-v-b0ff4ece="" class="flex pl-2"><span data-v-b0ff4ece="" class="ltr:-mr-0.5 rtl:-ml-0.5 material-design-icon account-circle-icon ltr:-mr-0.5 rtl:-ml-0.5" aria-hidden="true" role="img"><svg fill="currentColor" class="material-design-icon__svg" width="48" height="48" viewBox="0 0 24 24"><path d="M12,19.2C9.5,19.2 7.29,17.92 6,16C6.03,14 10,12.9 12,12.9C14,12.9 17.97,14 18,16C16.71,17.92 14.5,19.2 12,19.2M12,5A3,3 0 0,1 15,8A3,3 0 0,1 12,11A3,3 0 0,1 9,8A3,3 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z"><!--v-if--></path></svg></span></div>
|
||||
<div data-v-b0ff4ece="" class="text-center overflow-hidden w-full">
|
||||
<h5 data-v-b0ff4ece="" class="text-xl font-medium violet-title tracking-tight text-gray-900 dark:text-gray-200 whitespace-pre-line line-clamp-2">Group name</h5>
|
||||
<p data-v-b0ff4ece="" class="text-gray-500 dark:text-gray-200 truncate"><span data-v-b0ff4ece="" dir="ltr">@group_name</span></p>
|
||||
<p data-v-b0ff4ece="" class="text-gray-500 dark:text-gray-200 truncate"><span data-v-b0ff4ece="" dir="ltr">@group_name@domain</span></p>
|
||||
<div data-v-b0ff4ece="" class="only-first-child line-clamp-10"></div>
|
||||
<!--v-if-->
|
||||
</div>
|
||||
@@ -60,7 +60,7 @@ exports[`AdminGroupProfile > Show simple 1`] = `
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Domain</td>
|
||||
<td>Local</td>
|
||||
<td>domain</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Uploaded media size</td>
|
||||
@@ -71,8 +71,9 @@ exports[`AdminGroupProfile > Show simple 1`] = `
|
||||
<div class="flex gap-1"><button type="button" class="o-btn o-btn--primary" role="button" data-oruga="button"><span class="o-btn__wrapper"><!----><span class="o-btn__label">Suspend</span>
|
||||
<!----></span>
|
||||
</button>
|
||||
<!--v-if-->
|
||||
<!--v-if-->
|
||||
<!--v-if--><button type="button" class="o-btn o-btn--primary o-btn--outlined-primary" role="button" data-oruga="button"><span class="o-btn__wrapper"><!----><span class="o-btn__label">Refresh profile</span>
|
||||
<!----></span>
|
||||
</button>
|
||||
</div>
|
||||
<section>
|
||||
<h2>1 members</h2>
|
||||
|
||||
@@ -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",
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user