import { config, mount, flushPromises } from "@vue/test-utils"; import { createPinia, setActivePinia } from "pinia"; import { beforeEach, describe, expect, it, vi } from "vitest"; import { NConfigProvider, NDialogProvider, NMessageProvider, dateZhCN, zhCN, } from "naive-ui"; import { defineComponent, h } from "vue"; import RegistrationView from "./RegistrationView.vue"; import { mockApi } from "@/api/mock"; vi.mock("@/api/admin", async () => import("@/api/admin-mock")); config.global.stubs = { teleport: true }; function wrap(Comp: object) { return defineComponent({ setup() { return () => h(NConfigProvider, { locale: zhCN, dateLocale: dateZhCN, size: "small" }, { default: () => h(NMessageProvider, null, { default: () => h(NDialogProvider, null, { default: () => h(Comp), }), }), }); }, }); } describe("RegistrationView", () => { beforeEach(() => { setActivePinia(createPinia()); mockApi._setSession(); }); it("已有安全码时不显示缺码提示", async () => { const pinia = createPinia(); const w = mount(wrap(RegistrationView), { global: { plugins: [pinia] }, attachTo: document.body, }); await flushPromises(); expect(w.find('[data-testid="reg-enabled"]').exists()).toBe(true); expect(w.find('[data-testid="reg-code-missing"]').exists()).toBe(false); w.unmount(); }); });