依赖
"vitest": "0.34.6",
"@vue/test-utils": "2.4.3",
"axios-mock-adapter": "^1.22.0",
示例
import { mount } from "@vue/test-utils";
import { test, vi } from "vitest";
import { globalConfig, initEnv } from "../plugins";
import { Mock } from "../plugins/mock";
import { nextTick } from "vue";
import DictPicker from "@jhlc/platform/src/components/form/dict-picker/dict-picker";
import { RequestMethod } from "@jhlc/types/src/request-type";
test("字典挑选框", async () => {
afterEach(() => {
vi.clearAllTimers();
});
let dictCode = null;
const wrapper = mount(DictPicker, {
props: {
dictCode: dictCode,
"onUpdate:dictCode": (val) => {
dictCode = val;
console.log(val);
expect(val).toBe("tm_order_status");
},
},
global: globalConfig(),
});
initEnv(wrapper);
Mock.add(
"/system/dictModule/business/listWithDefaultApp",
RequestMethod.get,
{
strLevel: 2,
page: {
records: [
],
},
}
);
Mock.add(
"/system/business/dict/getDictionaryTreeDataWithDefaultApp",
RequestMethod.get,
{
dictionary: {
name: "业务词典",
icon: "/static/image/root_16.png",
open: true,
},
}
);
Mock.add("/system/dictDtl/list", RequestMethod.get, {
strLevel: 2,
dict: {
},
page: {
records: [
{
},
],
},
});
Mock.add("/system/business/dict/list", RequestMethod.get, {
page: {
records: [
},
],
total: 8,
size: 10,
current: 1,
orders: [],
searchCount: true,
countId: null,
maxLimit: null,
pages: 1,
},
moduleId: "1659808564790636545",
});
Mock.add("/system/business/dict/getById", RequestMethod.get, {
}
});
await wrapper.get("div.relative button").trigger("click");
await nextTick();
await wrapper.vm.$nextTick();
await wrapper.find("span[data-span=A-1]").trigger("click");
await nextTick();
await wrapper.vm.$nextTick();
const secondDom = wrapper.find("span[data-span=A1659808564790636545]");
secondDom.wrapperElement = secondDom.wrapperElement.parentNode.children[0];
await secondDom.trigger("click");
await nextTick();
await wrapper.vm.$nextTick();
await wrapper
.find("span[data-span=AK7I1EPNPJ3CN6KCTK1K0A21IDB08S0A5]")
.trigger("click");
await nextTick();
await wrapper.vm.$nextTick();
await wrapper.find("button.confirm").trigger("click");
});