UNPKG

vueless

Version:

Vue Styleless UI Component Library, powered by Tailwind CSS.

76 lines (62 loc) 1.84 kB
import { mount } from "@vue/test-utils"; import { describe, it, expect } from "vitest"; import UGroups from "../UGroups.vue"; import type { Props } from "../types"; describe("UGroups.vue", () => { // Props tests describe("Props", () => { // Gap prop it("applies correct gap classes", () => { const gaps = { none: "gap-0", xs: "gap-8", sm: "gap-10", md: "gap-12", lg: "gap-14", xl: "gap-16", }; Object.entries(gaps).forEach(([gap, expectedClass]) => { const component = mount(UGroups, { props: { gap: gap as Props["gap"], }, }); expect(component.attributes("class")).toContain(expectedClass); }); }); // DataTest prop it("applies the correct data-test attribute", () => { const dataTest = "groups-test"; const component = mount(UGroups, { props: { dataTest, }, }); expect(component.attributes("data-test")).toBe(dataTest); }); }); // Slots tests describe("Slots", () => { // Default slot it("renders content in default slot", () => { const slotClass = "default-content"; const slotContent = "Default Content"; const component = mount(UGroups, { slots: { default: `<div class="${slotClass}">${slotContent}</div>`, }, }); expect(component.find(`.${slotClass}`).exists()).toBe(true); expect(component.text()).toContain(slotContent); }); }); // Exposed refs tests describe("Exposed refs", () => { // wrapperRef it("exposes wrapperRef", () => { const component = mount(UGroups); expect(component.vm.wrapperRef).toBeDefined(); expect(component.vm.wrapperRef instanceof HTMLDivElement).toBe(true); }); }); });