import { mount } from "@vue/test-utils" import pwToggle from "../Toggle" const factory = (props, slot) => mount(pwToggle, { propsData: props, slots: { default: slot, }, }) describe("pwToggle", () => { test("mounts properly", () => { const wrapper = factory({ on: true }, "test") expect(wrapper).toBeTruthy() }) test("mounts even without the on prop", () => { const wrapper = factory({}, "test") expect(wrapper).toBeTruthy() }) test("state is set correctly through the prop", () => { const wrapper1 = factory({ on: true }, "test") expect(wrapper1.vm.$refs.toggle.classList.contains("on")).toEqual(true) const wrapper2 = factory({ on: false }, "test") expect(wrapper2.vm.$refs.toggle.classList.contains("on")).toEqual(false) }) test("caption label is rendered", () => { const wrapper = factory({ on: true }, "") expect(wrapper.find("#testcaption").exists()).toEqual(true) }) // test("clicking the button toggles the state", async () => { // const wrapper = factory({ on: true }, "test") // wrapper.vm.toggle() // await wrapper.vm.$nextTick() // expect(wrapper.vm.$refs.toggle.classList.contains("on")).toEqual(false) // wrapper.vm.toggle() // await wrapper.vm.$nextTick() // expect(wrapper.vm.$refs.toggle.classList.contains("on")).toEqual(true) // }) })