import { shallowMount, mount } from "@vue/test-utils";
import TabSelect from "../tabselect.vue";
import Vue from "vue";
describe("TabSelect.vue", () => {
const wrapper = mount(TabSelect, {
propsData: {
mainTitle: "配送测试",
subTitle: "送达时间测试",
defaultContent: [
"9:00——10:00",
"10:00——11:00",
"11:00——12:00",
"12:00——13:00",
"13:00——15:00",
"15:00——17:00",
"17:00——19:00"
],
tabList: [
{
tabTitle: "京东快递测试",
children: [
{
tabTitle: "1月13日 (星期一)",
content: [
"11:00——12:00",
"12:00——13:00",
"13:00——15:00",
"15:00——17:00",
"17:00——19:00"
]
},
{
tabTitle: "1月14日 (星期二)"
},
{
tabTitle: "1月15日 (星期三)"
},
{
tabTitle: "1月16日 (星期四)"
},
{
tabTitle: "1月17日 (星期五)"
},
{
tabTitle: "1月18日 (星期六)"
},
{
tabTitle: "1月19日 (星期天)"
}
]
},
{
tabTitle: "上门自提",
children: [
{
tabTitle: "2月13日 (星期一)",
content: ["13:00——15:00", "15:00——17:00", "17:00——19:00"]
},
{
tabTitle: "2月14日 (星期二)"
},
{
tabTitle: "2月15日 (星期三)"
},
{
tabTitle: "2月16日 (星期四)"
},
{
tabTitle: "2月17日 (星期五)"
},
{
tabTitle: "2月18日 (星期六)"
},
{
tabTitle: "2月19日 (星期天)"
}
]
}
],
show: true,
multiple: false,
isDefaultSelected: false,
max: 2
}
});
it("mainTitle标题", () => {
return Vue.nextTick().then(function() {
expect(
wrapper
.findAll(".nut-tabselect-main-title")
.at(0)
.text()
).toBe("配送测试");
});
});
it("subTitle标题", () => {
return Vue.nextTick().then(function() {
expect(
wrapper
.findAll(".nut-tabselect-sub-title")
.at(0)
.text()
).toBe("送达时间测试");
// expect(wrapper.html()).toContain(
// '
送达时间测试
'
// );
});
});
it("defaultContent默认内容", () => {
return Vue.nextTick().then(function() {
expect(
wrapper
.findAll(".nut-tab-panel-list")
.at(0)
.text()
).toBe("11:00——12:00");
});
});
it("是否支持单选", () => {
wrapper
.findAll(".nut-tab-panel-list")
.at(1)
.trigger("click");
wrapper
.findAll(".nut-tab-panel-list")
.at(2)
.trigger("click");
return Vue.nextTick().then(function() {
expect(wrapper.findAll(".nut-tab-panel-list-active").length).toBe(1);
});
});
it("是否支持多选", () => {
wrapper.setProps({ multiple: true });
wrapper
.findAll(".nut-tab-panel-list")
.at(1)
.trigger("click");
return Vue.nextTick().then(function() {
expect(wrapper.findAll(".nut-tab-panel-list-active").length).toBe(2);
});
});
it("设置max", () => {
wrapper
.findAll(".nut-tab-panel-list")
.at(3)
.trigger("click");
wrapper
.findAll(".nut-tab-panel-list")
.at(4)
.trigger("click");
return Vue.nextTick().then(function() {
expect(wrapper.findAll(".nut-tab-panel-list-active").length).toBe(2);
});
});
it("tabList整体数据", () => {
return Vue.nextTick().then(function() {
expect(
wrapper
.findAll(".nut-tab-link")
.at(0)
.text()
).toBe("京东快递测试");
});
});
it("设置show", () => {
wrapper.setProps({ show: true });
return Vue.nextTick().then(function() {
expect(
wrapper
.findAll(".popup-box")
.at(0)
.attributes("display")
).toBe(undefined);
});
});
it("设置isDefaultSelected", () => {
wrapper.setProps({ isDefaultSelected: true });
return Vue.nextTick().then(function() {
expect(wrapper.contains(".nut-tab-panel-list-active")).toBe(true);
});
});
});