102 lines
2.5 KiB
JavaScript
102 lines
2.5 KiB
JavaScript
import { shallowMount } from "@vue/test-utils";
|
|
import buttonMain from "./button-main";
|
|
import { getMountOptions } from "@/helpers/unit-test-helper.js";
|
|
import { nextTick } from "vue";
|
|
|
|
describe("buttonMain.vue", () => {
|
|
it("Should return btn-primary class", async () => {
|
|
// Act
|
|
const wrapper = shallowMount(
|
|
buttonMain,
|
|
setupMocks({
|
|
propsData: {
|
|
isPrimary: true,
|
|
},
|
|
})
|
|
);
|
|
|
|
// Assert
|
|
const button = wrapper.find("button");
|
|
|
|
// Expect
|
|
expect(button.attributes("class")).toContain("btn-primary");
|
|
});
|
|
|
|
it("Should return aria-disabled state", async () => {
|
|
// Act
|
|
const wrapper = shallowMount(
|
|
buttonMain,
|
|
setupMocks({
|
|
propsData: {
|
|
isDisabled: true,
|
|
},
|
|
})
|
|
);
|
|
|
|
// Assert
|
|
const button = wrapper.find("button");
|
|
|
|
// Expect
|
|
expect(button.attributes()["aria-disabled"]).toEqual("true");
|
|
});
|
|
|
|
it("Should return loader color", async () => {
|
|
// Act
|
|
const wrapper = shallowMount(
|
|
buttonMain,
|
|
setupMocks({
|
|
propsData: {
|
|
loaderColor: "blue",
|
|
loaderEnabled: true,
|
|
},
|
|
})
|
|
);
|
|
|
|
// Assert
|
|
|
|
const label = wrapper.find("label");
|
|
|
|
wrapper.vm.clicked();
|
|
|
|
await nextTick();
|
|
|
|
const loader = wrapper.find("loader-stub");
|
|
|
|
expect(loader.attributes("class")).toContain("blue");
|
|
});
|
|
|
|
it("Should return loader position", async () => {
|
|
// Act
|
|
const wrapper = shallowMount(
|
|
buttonMain,
|
|
setupMocks({
|
|
propsData: {
|
|
loaderPosition: "right",
|
|
loaderEnabled: true,
|
|
},
|
|
})
|
|
);
|
|
|
|
// Assert
|
|
|
|
const label = wrapper.find("label");
|
|
|
|
wrapper.vm.clicked();
|
|
|
|
await nextTick();
|
|
|
|
const loader = wrapper.find("loader-stub");
|
|
|
|
expect(loader.attributes("class")).toContain("right");
|
|
});
|
|
});
|
|
|
|
function setupMocks(mountOptionsMockData = {}) {
|
|
const defaultMountOptions = { route: { query: { issPage: "page-name" } } };
|
|
const baseMountOptions = getMountOptions(
|
|
Object.assign(defaultMountOptions, mountOptionsMockData)
|
|
);
|
|
const allMountOptions = Object.assign(defaultMountOptions, baseMountOptions);
|
|
|
|
return allMountOptions;
|
|
}
|