import { shallowMount } from "@vue/test-utils"; import listCard from "./list-card"; describe("list-card.vue", () => { it("Should return input type checkbox if isMultiSelect is true", async () => { // Act const wrapper = shallowMount(listCard, { propsData: { isMultiSelect: true, buttonLabel: "Windshield", buttonID: "List Card Checkbox", groupID: "checkbox-demo-1", groupName: "Checkbox 1", buttonImage: "windshield-damage.svg", }, }); // Assert const input = wrapper.find("input"); expect(input.attributes().type).toEqual("checkbox"); }); it("Should return primary label text", async () => { // Act const wrapper = shallowMount(listCard, { propsData: { isRadioHorizontal: true, buttonLabel: "Windshield", buttonID: "List Card Checkbox", groupID: "radio-demo-1", groupName: "radio 1", buttonImage: "windshield-damage.svg", }, }); // Assert const paragraph = wrapper.find("p"); expect(paragraph.text()).toEqual("Windshield"); }); it("Should return secondary (sub) label text", async () => { // Act const wrapper = shallowMount(listCard, { propsData: { isRadioHorizontal: true, buttonLabel: "Windshield", buttonID: "List Card Checkbox", groupID: "radio-demo-1", groupName: "radio 1", buttonImage: "windshield-damage.svg", buttonLabelSubCopy: "Test", }, }); // Assert const paragraph = wrapper.find("p:nth-of-type(2)"); expect(paragraph.text()).toEqual("Test"); }); it("Should return value used for various text settings including the label 'for' and input id", async () => { // Act const wrapper = shallowMount(listCard, { propsData: { isRadioHorizontal: true, buttonLabel: "Windshield", buttonID: "List Card Checkbox", groupID: "radio-demo-1", groupName: "radio 1", buttonImage: "windshield-damage.svg", buttonLabelSubCopy: "Test", }, }); // Assert const label = wrapper.find("label"); expect(label.attributes().for).toEqual("List Card Checkbox"); }); it("Should return input group name used for radio or checkbox", async () => { // Act const wrapper = shallowMount(listCard, { propsData: { isRadioHorizontal: true, buttonLabel: "Windshield", buttonID: "List Card Checkbox", groupID: "radio-demo-1", groupName: "radio 1", buttonImage: "windshield-damage.svg", buttonLabelSubCopy: "Test", }, }); // Assert const input = wrapper.find("input"); expect(input.attributes().name).toEqual("radio 1"); }); it("Should return aria-required state", async () => { // Act const wrapper = shallowMount(listCard, { propsData: { isRadioHorizontal: true, buttonLabel: "Windshield", buttonID: "List Card Checkbox", groupID: "radio-demo-1", groupName: "radio 1", buttonImage: "windshield-damage.svg", isRequired: true, }, }); // Assert const input = wrapper.find("input"); expect(input.attributes()["aria-required"]).toEqual("true"); }); });