vueless 1.3.1-beta.1 → 1.3.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/icons/internal/progress_activity.svg +1 -0
- package/package.json +1 -1
- package/ui.container-accordion/tests/UAccordion.test.ts +6 -9
- package/ui.container-accordion-item/tests/UAccordionItem.test.ts +18 -41
- package/ui.container-card/config.ts +2 -0
- package/ui.container-card/tests/UCard.test.ts +14 -31
- package/ui.container-card/types.ts +1 -1
- package/ui.container-col/tests/UCol.test.ts +11 -25
- package/ui.container-drawer/config.ts +1 -0
- package/ui.container-drawer/types.ts +1 -1
- package/ui.container-group/tests/UGroup.test.ts +12 -26
- package/ui.container-groups/tests/UGroups.test.ts +4 -11
- package/ui.container-modal/UModal.vue +1 -1
- package/ui.container-modal/config.ts +2 -1
- package/ui.container-modal/types.ts +1 -1
- package/ui.container-modal-confirm/UModalConfirm.vue +2 -2
- package/ui.container-modal-confirm/tests/UModalConfirm.test.ts +28 -57
- package/ui.container-modal-confirm/types.ts +1 -1
- package/ui.container-page/config.ts +2 -0
- package/ui.container-page/tests/UPage.test.ts +18 -38
- package/ui.container-page/types.ts +1 -1
- package/ui.container-row/tests/URow.test.ts +11 -25
- package/ui.form-calendar/config.ts +0 -1
- package/ui.form-checkbox/config.ts +14 -15
- package/ui.form-checkbox/storybook/docs.mdx +0 -16
- package/ui.form-checkbox/storybook/optionKeys.mdx +17 -0
- package/ui.form-checkbox/storybook/stories.ts +1 -3
- package/ui.form-checkbox-group/storybook/docs.mdx +2 -2
- package/ui.form-checkbox-multi-state/storybook/docs.mdx +3 -0
- package/ui.loader/ULoader.vue +10 -2
- package/ui.loader/config.ts +14 -1
- package/ui.loader/storybook/stories.ts +4 -1
- package/ui.loader/tests/ULoader.test.ts +74 -17
- package/ui.loader/types.ts +5 -0
- package/ui.loader-overlay/tests/ULoaderOverlay.test.ts +6 -15
- package/ui.loader-progress/tests/ULoaderProgress.test.ts +8 -18
- package/ui.navigation-breadcrumbs/tests/UBreadcrumbs.test.ts +18 -40
- package/ui.navigation-pagination/tests/UPagination.test.ts +18 -40
- package/ui.navigation-progress/tests/UProgress.test.ts +11 -25
- package/ui.navigation-tab/tests/UTab.test.ts +21 -46
- package/ui.navigation-tabs/tests/UTabs.test.ts +13 -30
- package/ui.other-chip/tests/UChip.test.ts +13 -29
- package/ui.other-dot/tests/UDot.test.ts +4 -10
- package/ui.other-theme-color-toggle/tests/UThemeColorToggle.test.ts +13 -29
- package/ui.skeleton/USkeleton.vue +6 -6
- package/ui.skeleton/config.ts +1 -13
- package/ui.skeleton/storybook/stories.ts +3 -20
- package/ui.skeleton/tests/USkeleton.test.ts +2 -27
- package/ui.skeleton/types.ts +0 -5
- package/ui.skeleton-choice/USkeletonChoice.vue +8 -8
- package/ui.skeleton-choice/config.ts +0 -1
- package/ui.skeleton-choice/storybook/stories.ts +3 -6
- package/ui.skeleton-choice/tests/USkeletonChoice.test.ts +7 -35
- package/ui.skeleton-choice/types.ts +0 -5
- package/ui.skeleton-input/USkeletonInput.vue +11 -10
- package/ui.skeleton-input/config.ts +0 -1
- package/ui.skeleton-input/storybook/stories.ts +4 -7
- package/ui.skeleton-input/tests/USkeletonInput.test.ts +11 -48
- package/ui.skeleton-input/types.ts +0 -5
- package/ui.skeleton-text/USkeletonText.vue +8 -8
- package/ui.skeleton-text/config.ts +2 -2
- package/ui.skeleton-text/storybook/stories.ts +1 -4
- package/ui.skeleton-text/tests/USkeletonText.test.ts +5 -32
- package/ui.skeleton-text/types.ts +0 -5
- package/ui.text-alert/tests/UAlert.test.ts +17 -38
- package/ui.text-badge/tests/UBadge.test.ts +19 -42
- package/ui.text-block/UText.vue +7 -7
- package/ui.text-block/config.ts +8 -7
- package/ui.text-block/storybook/stories.ts +13 -25
- package/ui.text-block/tests/UText.test.ts +27 -28
- package/ui.text-block/types.ts +6 -1
- package/ui.text-empty/tests/UEmpty.test.ts +14 -31
- package/ui.text-file/tests/UFile.test.ts +13 -30
- package/ui.text-files/tests/UFiles.test.ts +14 -32
- package/ui.text-header/config.ts +2 -0
- package/ui.text-header/tests/UHeader.test.ts +10 -23
- package/ui.text-notify/tests/UNotify.test.ts +12 -26
- package/ui.text-number/tests/UNumber.test.ts +16 -35
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M480-74.02q-85.48 0-159.53-31.38-74.04-31.38-128.87-86.2-54.82-54.83-86.2-128.87Q74.02-394.52 74.02-480q0-85.47 31.38-159.48 31.37-74.02 86.16-128.91 54.79-54.89 128.86-86.36 74.07-31.47 159.58-31.47 13.67 0 23.87 10.34 10.2 10.33 10.2 23.99 0 13.65-10.2 23.85-10.2 10.19-23.87 10.19-140.29 0-239.07 98.78T142.15-480q0 140.28 98.78 239.07 98.78 98.78 239.07 98.78 140.28 0 239.07-98.78 98.78-98.78 98.78-239.07 0-13.67 10.19-23.87 10.2-10.2 23.85-10.2 13.66 0 23.99 10.2 10.34 10.2 10.34 23.87 0 85.51-31.48 159.58-31.49 74.08-86.32 128.88t-128.88 86.16Q565.5-74.02 480-74.02Z"/></svg>
|
package/package.json
CHANGED
|
@@ -11,9 +11,8 @@ describe("UAccordion", () => {
|
|
|
11
11
|
{ value: "b", title: "B" },
|
|
12
12
|
];
|
|
13
13
|
|
|
14
|
-
// Props
|
|
15
14
|
describe("Props", () => {
|
|
16
|
-
it("renders items from options", () => {
|
|
15
|
+
it("Options – renders items from options", () => {
|
|
17
16
|
const component = mount(UAccordion, {
|
|
18
17
|
props: { options },
|
|
19
18
|
});
|
|
@@ -23,7 +22,7 @@ describe("UAccordion", () => {
|
|
|
23
22
|
expect(items.length).toBe(options.length);
|
|
24
23
|
});
|
|
25
24
|
|
|
26
|
-
it("passes base props down to items", () => {
|
|
25
|
+
it("Base Props – passes base props down to items", () => {
|
|
27
26
|
const component = mount(UAccordion, {
|
|
28
27
|
props: { size: "md", disabled: true, options },
|
|
29
28
|
});
|
|
@@ -34,7 +33,7 @@ describe("UAccordion", () => {
|
|
|
34
33
|
expect(item.props("disabled")).toBe(true);
|
|
35
34
|
});
|
|
36
35
|
|
|
37
|
-
it("applies data-test attribute to wrapper", () => {
|
|
36
|
+
it("Data Test – applies data-test attribute to wrapper", () => {
|
|
38
37
|
const dataTest = "accordion-test";
|
|
39
38
|
|
|
40
39
|
const component = mount(UAccordion, {
|
|
@@ -45,9 +44,8 @@ describe("UAccordion", () => {
|
|
|
45
44
|
});
|
|
46
45
|
});
|
|
47
46
|
|
|
48
|
-
// Exposed refs
|
|
49
47
|
describe("Exposed refs", () => {
|
|
50
|
-
it("exposes accordionRef", () => {
|
|
48
|
+
it("accordionRef – exposes accordionRef", () => {
|
|
51
49
|
const component = mount(UAccordion);
|
|
52
50
|
|
|
53
51
|
expect(component.vm.accordionRef).toBeDefined();
|
|
@@ -55,9 +53,8 @@ describe("UAccordion", () => {
|
|
|
55
53
|
});
|
|
56
54
|
});
|
|
57
55
|
|
|
58
|
-
// Events
|
|
59
56
|
describe("Events", () => {
|
|
60
|
-
it("emits update:modelValue when an item is toggled (single)", async () => {
|
|
57
|
+
it("Model Value – emits update:modelValue when an item is toggled (single)", async () => {
|
|
61
58
|
const modelValue = ref<string | null>(null);
|
|
62
59
|
|
|
63
60
|
const component = mount(UAccordion, {
|
|
@@ -86,7 +83,7 @@ describe("UAccordion", () => {
|
|
|
86
83
|
expect(updates2?.[1]).toEqual([null]);
|
|
87
84
|
});
|
|
88
85
|
|
|
89
|
-
it("emits update:modelValue with arrays when multiple=true", async () => {
|
|
86
|
+
it("Model Value – emits update:modelValue with arrays when multiple=true", async () => {
|
|
90
87
|
const modelValue = ref<string[]>([]);
|
|
91
88
|
|
|
92
89
|
const component = mount(UAccordion, {
|
|
@@ -7,10 +7,8 @@ import UIcon from "../../ui.image-icon/UIcon.vue";
|
|
|
7
7
|
import type { Props } from "../types";
|
|
8
8
|
|
|
9
9
|
describe("UAccordionItem", () => {
|
|
10
|
-
// Props
|
|
11
10
|
describe("Props", () => {
|
|
12
|
-
|
|
13
|
-
it("renders with title prop", () => {
|
|
11
|
+
it("Title – renders with title prop", () => {
|
|
14
12
|
const title = "Accordion Title";
|
|
15
13
|
|
|
16
14
|
const component = mount(UAccordionItem, {
|
|
@@ -22,8 +20,7 @@ describe("UAccordionItem", () => {
|
|
|
22
20
|
expect(component.find("[vl-key='title']").text()).toContain(title);
|
|
23
21
|
});
|
|
24
22
|
|
|
25
|
-
|
|
26
|
-
it("renders with description prop", () => {
|
|
23
|
+
it("Description – renders with description prop", () => {
|
|
27
24
|
const description = "Accordion Description";
|
|
28
25
|
|
|
29
26
|
const component = mount(UAccordionItem, {
|
|
@@ -35,8 +32,7 @@ describe("UAccordionItem", () => {
|
|
|
35
32
|
expect(component.find("[vl-key='description']").text()).toBe(description);
|
|
36
33
|
});
|
|
37
34
|
|
|
38
|
-
|
|
39
|
-
it("applies correct size classes", () => {
|
|
35
|
+
it("Size – applies correct size classes", () => {
|
|
40
36
|
const sizeClasses = {
|
|
41
37
|
sm: "text-small",
|
|
42
38
|
md: "text-medium",
|
|
@@ -54,8 +50,7 @@ describe("UAccordionItem", () => {
|
|
|
54
50
|
});
|
|
55
51
|
});
|
|
56
52
|
|
|
57
|
-
|
|
58
|
-
it("applies correct toggle icon behavior", () => {
|
|
53
|
+
it("Toggle Icon – applies correct toggle icon behavior", () => {
|
|
59
54
|
const toggleIconTests = [
|
|
60
55
|
{ toggleIcon: true, exists: true, iconName: "keyboard_arrow_down" },
|
|
61
56
|
{ toggleIcon: "custom_icon", exists: true, iconName: "custom_icon" },
|
|
@@ -79,8 +74,7 @@ describe("UAccordionItem", () => {
|
|
|
79
74
|
});
|
|
80
75
|
});
|
|
81
76
|
|
|
82
|
-
|
|
83
|
-
it("uses provided id prop", () => {
|
|
77
|
+
it("ID – uses provided id prop", () => {
|
|
84
78
|
const id = "custom-id";
|
|
85
79
|
const description = "some text";
|
|
86
80
|
|
|
@@ -94,8 +88,7 @@ describe("UAccordionItem", () => {
|
|
|
94
88
|
expect(component.find(`[vl-key='description']`).exists()).toBe(true);
|
|
95
89
|
});
|
|
96
90
|
|
|
97
|
-
|
|
98
|
-
it("applies data-test attribute", () => {
|
|
91
|
+
it("Data Test – applies data-test attribute", () => {
|
|
99
92
|
const dataTest = "accordion-test";
|
|
100
93
|
|
|
101
94
|
const component = mount(UAccordionItem, {
|
|
@@ -108,10 +101,8 @@ describe("UAccordionItem", () => {
|
|
|
108
101
|
});
|
|
109
102
|
});
|
|
110
103
|
|
|
111
|
-
// Slots
|
|
112
104
|
describe("Slots", () => {
|
|
113
|
-
|
|
114
|
-
it("renders default toggle icon when toggle slot is not provided", () => {
|
|
105
|
+
it("Toggle – renders default toggle icon when toggle slot is not provided", () => {
|
|
115
106
|
const toggleIcon = true;
|
|
116
107
|
|
|
117
108
|
const component = mount(UAccordionItem, {
|
|
@@ -125,8 +116,7 @@ describe("UAccordionItem", () => {
|
|
|
125
116
|
expect(icon.exists()).toBe(true);
|
|
126
117
|
});
|
|
127
118
|
|
|
128
|
-
|
|
129
|
-
it("renders custom content in toggle slot", () => {
|
|
119
|
+
it("Toggle – renders custom content in toggle slot", () => {
|
|
130
120
|
const toggleIcon = true;
|
|
131
121
|
const slotClass = "custom-toggle";
|
|
132
122
|
const slotContent = "Custom Toggle";
|
|
@@ -145,8 +135,7 @@ describe("UAccordionItem", () => {
|
|
|
145
135
|
expect(component.findComponent(UIcon).exists()).toBe(false);
|
|
146
136
|
});
|
|
147
137
|
|
|
148
|
-
|
|
149
|
-
it("provides icon-name and opened bindings to toggle slot", async () => {
|
|
138
|
+
it("Toggle – provides icon-name and opened bindings to toggle slot", async () => {
|
|
150
139
|
const toggleIcon = true;
|
|
151
140
|
const toggleClass = "custom-toggle";
|
|
152
141
|
const defaultIconName = "keyboard_arrow_down";
|
|
@@ -176,8 +165,7 @@ describe("UAccordionItem", () => {
|
|
|
176
165
|
expect(toggleElement.attributes("data-opened")).toBe("true");
|
|
177
166
|
});
|
|
178
167
|
|
|
179
|
-
|
|
180
|
-
it("renders custom content in title slot", () => {
|
|
168
|
+
it("Title – renders custom content in title slot", () => {
|
|
181
169
|
const title = "Original Title";
|
|
182
170
|
const slotClass = "custom-title";
|
|
183
171
|
const slotContent = "Custom Title Content";
|
|
@@ -195,8 +183,7 @@ describe("UAccordionItem", () => {
|
|
|
195
183
|
expect(component.text()).not.toContain(title);
|
|
196
184
|
});
|
|
197
185
|
|
|
198
|
-
|
|
199
|
-
it("provides title binding to title slot", () => {
|
|
186
|
+
it("Title – provides title binding to title slot", () => {
|
|
200
187
|
const title = "Test Title";
|
|
201
188
|
const slotClass = "custom-title";
|
|
202
189
|
|
|
@@ -217,8 +204,7 @@ describe("UAccordionItem", () => {
|
|
|
217
204
|
expect(titleElement.attributes("data-title")).toBe(title);
|
|
218
205
|
});
|
|
219
206
|
|
|
220
|
-
|
|
221
|
-
it("renders custom content in description slot", () => {
|
|
207
|
+
it("Description – renders custom content in description slot", () => {
|
|
222
208
|
const description = "Original Description";
|
|
223
209
|
const slotClass = "custom-description";
|
|
224
210
|
const slotContent = "Custom Description Content";
|
|
@@ -236,8 +222,7 @@ describe("UAccordionItem", () => {
|
|
|
236
222
|
expect(component.text()).not.toContain(description);
|
|
237
223
|
});
|
|
238
224
|
|
|
239
|
-
|
|
240
|
-
it("provides description binding to description slot", () => {
|
|
225
|
+
it("Description – provides description binding to description slot", () => {
|
|
241
226
|
const description = "Test Description";
|
|
242
227
|
const slotClass = "custom-description";
|
|
243
228
|
|
|
@@ -274,8 +259,7 @@ describe("UAccordionItem", () => {
|
|
|
274
259
|
expect(component.find(`.${slotClass}`).text()).toBe(slotContent);
|
|
275
260
|
});
|
|
276
261
|
|
|
277
|
-
|
|
278
|
-
it("renders default slot content when accordion is opened", async () => {
|
|
262
|
+
it("Default – renders default slot content when accordion is opened", async () => {
|
|
279
263
|
const slotContent = "Custom accordion content";
|
|
280
264
|
const slotClass = "custom-content";
|
|
281
265
|
|
|
@@ -320,8 +304,7 @@ describe("UAccordionItem", () => {
|
|
|
320
304
|
expect(component.find("[vl-key='content']").exists()).toBe(false);
|
|
321
305
|
});
|
|
322
306
|
|
|
323
|
-
|
|
324
|
-
it("title slot content is clickable and toggles accordion", async () => {
|
|
307
|
+
it("Title – title slot content is clickable and toggles accordion", async () => {
|
|
325
308
|
const title = "Test Title";
|
|
326
309
|
const slotClass = "custom-title";
|
|
327
310
|
const slotContent = "Custom Title Content";
|
|
@@ -409,10 +392,8 @@ describe("UAccordionItem", () => {
|
|
|
409
392
|
});
|
|
410
393
|
});
|
|
411
394
|
|
|
412
|
-
// Events
|
|
413
395
|
describe("Events", () => {
|
|
414
|
-
|
|
415
|
-
it("emits click event with id and opened state when clicked", async () => {
|
|
396
|
+
it("Click – emits click event with id and opened state when clicked", async () => {
|
|
416
397
|
const id = "test-id";
|
|
417
398
|
|
|
418
399
|
const component = mount(UAccordionItem, {
|
|
@@ -437,10 +418,8 @@ describe("UAccordionItem", () => {
|
|
|
437
418
|
});
|
|
438
419
|
});
|
|
439
420
|
|
|
440
|
-
// Exposed refs
|
|
441
421
|
describe("Exposed refs", () => {
|
|
442
|
-
|
|
443
|
-
it("exposes wrapperRef", () => {
|
|
422
|
+
it("wrapperRef – exposes wrapperRef", () => {
|
|
444
423
|
const component = mount(UAccordionItem);
|
|
445
424
|
|
|
446
425
|
expect(component.vm.wrapperRef).toBeDefined();
|
|
@@ -448,10 +427,8 @@ describe("UAccordionItem", () => {
|
|
|
448
427
|
});
|
|
449
428
|
});
|
|
450
429
|
|
|
451
|
-
// Component behavior
|
|
452
430
|
describe("Component behavior", () => {
|
|
453
|
-
|
|
454
|
-
it("toggles opened state when clicked", async () => {
|
|
431
|
+
it("Toggle – toggles opened state when clicked", async () => {
|
|
455
432
|
const description = "Test Description";
|
|
456
433
|
const openedClass = "opacity-100";
|
|
457
434
|
|
|
@@ -7,6 +7,7 @@ export default /*tw*/ {
|
|
|
7
7
|
outlined: "bg-default border-muted",
|
|
8
8
|
subtle: "bg-muted border-default/50",
|
|
9
9
|
soft: "bg-muted border-transparent",
|
|
10
|
+
inverted: "bg-inverted border-transparent",
|
|
10
11
|
},
|
|
11
12
|
},
|
|
12
13
|
},
|
|
@@ -23,6 +24,7 @@ export default /*tw*/ {
|
|
|
23
24
|
outlined: "border-muted",
|
|
24
25
|
subtle: "border-default/50",
|
|
25
26
|
soft: "border-default/50",
|
|
27
|
+
inverted: "border-default/50",
|
|
26
28
|
},
|
|
27
29
|
},
|
|
28
30
|
},
|
|
@@ -7,10 +7,8 @@ import UHeader from "../../ui.text-header/UHeader.vue";
|
|
|
7
7
|
import type { Props } from "../types";
|
|
8
8
|
|
|
9
9
|
describe("UCard", () => {
|
|
10
|
-
// Props
|
|
11
10
|
describe("Props", () => {
|
|
12
|
-
|
|
13
|
-
it("renders with title prop", () => {
|
|
11
|
+
it("Title – renders with title prop", () => {
|
|
14
12
|
const title = "Card Title";
|
|
15
13
|
|
|
16
14
|
const component = mount(UCard, {
|
|
@@ -25,15 +23,13 @@ describe("UCard", () => {
|
|
|
25
23
|
expect(header.props("label")).toBe(title);
|
|
26
24
|
});
|
|
27
25
|
|
|
28
|
-
|
|
29
|
-
it("does not show header when no title or slots are provided", () => {
|
|
26
|
+
it("Title – does not show header when no title or slots are provided", () => {
|
|
30
27
|
const component = mount(UCard);
|
|
31
28
|
|
|
32
29
|
expect(component.findComponent(UHeader).exists()).toBe(false);
|
|
33
30
|
});
|
|
34
31
|
|
|
35
|
-
|
|
36
|
-
it("renders with description prop", () => {
|
|
32
|
+
it("Description – renders with description prop", () => {
|
|
37
33
|
const title = "Card Title";
|
|
38
34
|
const description = "Card Description";
|
|
39
35
|
|
|
@@ -47,8 +43,7 @@ describe("UCard", () => {
|
|
|
47
43
|
expect(component.find("[vl-key='description']").text()).toContain(description);
|
|
48
44
|
});
|
|
49
45
|
|
|
50
|
-
|
|
51
|
-
it("applies correct variant classes", () => {
|
|
46
|
+
it("Variant – applies correct variant classes", () => {
|
|
52
47
|
const variants = {
|
|
53
48
|
solid: "bg-default border-transparent",
|
|
54
49
|
outlined: "bg-default border-muted",
|
|
@@ -67,8 +62,7 @@ describe("UCard", () => {
|
|
|
67
62
|
});
|
|
68
63
|
});
|
|
69
64
|
|
|
70
|
-
|
|
71
|
-
it("applies data-test attribute", () => {
|
|
65
|
+
it("Data Test – applies data-test attribute", () => {
|
|
72
66
|
const dataTest = "card-test";
|
|
73
67
|
|
|
74
68
|
const component = mount(UCard, {
|
|
@@ -81,10 +75,8 @@ describe("UCard", () => {
|
|
|
81
75
|
});
|
|
82
76
|
});
|
|
83
77
|
|
|
84
|
-
// Slots
|
|
85
78
|
describe("Slots", () => {
|
|
86
|
-
|
|
87
|
-
it("renders content in default slot", () => {
|
|
79
|
+
it("Default – renders content in default slot", () => {
|
|
88
80
|
const slotClass = "default-content";
|
|
89
81
|
const slotContent = "Default Content";
|
|
90
82
|
|
|
@@ -98,8 +90,7 @@ describe("UCard", () => {
|
|
|
98
90
|
expect(component.find(`.${slotClass}`).text()).toBe(slotContent);
|
|
99
91
|
});
|
|
100
92
|
|
|
101
|
-
|
|
102
|
-
it("renders custom content in title slot", () => {
|
|
93
|
+
it("Title – renders custom content in title slot", () => {
|
|
103
94
|
const title = "Original Title";
|
|
104
95
|
const slotClass = "custom-title";
|
|
105
96
|
const slotContent = "Custom Title";
|
|
@@ -118,8 +109,7 @@ describe("UCard", () => {
|
|
|
118
109
|
expect(component.findComponent(UHeader).exists()).toBe(false);
|
|
119
110
|
});
|
|
120
111
|
|
|
121
|
-
|
|
122
|
-
it("renders content in before-title slot", () => {
|
|
112
|
+
it("Before-title – renders content in before-title slot", () => {
|
|
123
113
|
const title = "Card Title";
|
|
124
114
|
const slotClass = "before-title";
|
|
125
115
|
const slotContent = "Before Title";
|
|
@@ -137,8 +127,7 @@ describe("UCard", () => {
|
|
|
137
127
|
expect(component.find(`.${slotClass}`).text()).toBe(slotContent);
|
|
138
128
|
});
|
|
139
129
|
|
|
140
|
-
|
|
141
|
-
it("renders content in after-title slot", () => {
|
|
130
|
+
it("After-title – renders content in after-title slot", () => {
|
|
142
131
|
const title = "Card Title";
|
|
143
132
|
const slotClass = "after-title";
|
|
144
133
|
const slotContent = "After Title";
|
|
@@ -156,8 +145,7 @@ describe("UCard", () => {
|
|
|
156
145
|
expect(component.find(`.${slotClass}`).text()).toBe(slotContent);
|
|
157
146
|
});
|
|
158
147
|
|
|
159
|
-
|
|
160
|
-
it("renders content in actions slot", () => {
|
|
148
|
+
it("Actions – renders content in actions slot", () => {
|
|
161
149
|
const title = "Card Title";
|
|
162
150
|
const slotClass = "actions";
|
|
163
151
|
const slotContent = "Actions";
|
|
@@ -175,8 +163,7 @@ describe("UCard", () => {
|
|
|
175
163
|
expect(component.find(`.${slotClass}`).text()).toBe(slotContent);
|
|
176
164
|
});
|
|
177
165
|
|
|
178
|
-
|
|
179
|
-
it("renders content in footer-left slot", () => {
|
|
166
|
+
it("Footer-left – renders content in footer-left slot", () => {
|
|
180
167
|
const slotClass = "footer-left";
|
|
181
168
|
const slotContent = "Footer Left";
|
|
182
169
|
|
|
@@ -191,8 +178,7 @@ describe("UCard", () => {
|
|
|
191
178
|
expect(component.text()).toContain(slotContent);
|
|
192
179
|
});
|
|
193
180
|
|
|
194
|
-
|
|
195
|
-
it("renders content in footer-right slot", () => {
|
|
181
|
+
it("Footer-right – renders content in footer-right slot", () => {
|
|
196
182
|
const slotClass = "footer-right";
|
|
197
183
|
const slotContent = "Footer Right";
|
|
198
184
|
|
|
@@ -207,8 +193,7 @@ describe("UCard", () => {
|
|
|
207
193
|
expect(component.text()).toContain(slotContent);
|
|
208
194
|
});
|
|
209
195
|
|
|
210
|
-
|
|
211
|
-
it("does not show footer when no footer slots are provided", () => {
|
|
196
|
+
it("Footer – does not show footer when no footer slots are provided", () => {
|
|
212
197
|
const component = mount(UCard);
|
|
213
198
|
|
|
214
199
|
expect(component.find("[vl-key='footerLeft']").exists()).toBe(false);
|
|
@@ -216,10 +201,8 @@ describe("UCard", () => {
|
|
|
216
201
|
});
|
|
217
202
|
});
|
|
218
203
|
|
|
219
|
-
// Exposed refs
|
|
220
204
|
describe("Exposed refs", () => {
|
|
221
|
-
|
|
222
|
-
it("exposes wrapperRef", () => {
|
|
205
|
+
it("wrapperRef – exposes wrapperRef", () => {
|
|
223
206
|
const component = mount(UCard);
|
|
224
207
|
|
|
225
208
|
expect(component.vm.wrapperRef).toBeDefined();
|
|
@@ -6,10 +6,8 @@ import UCol from "../UCol.vue";
|
|
|
6
6
|
import type { Props } from "../types";
|
|
7
7
|
|
|
8
8
|
describe("UCol.vue", () => {
|
|
9
|
-
// Props tests
|
|
10
9
|
describe("Props", () => {
|
|
11
|
-
|
|
12
|
-
it("applies the correct gap class", () => {
|
|
10
|
+
it("Gap – applies the correct gap class", () => {
|
|
13
11
|
const gapClasses = {
|
|
14
12
|
none: "gap-0",
|
|
15
13
|
"3xs": "gap-0.5",
|
|
@@ -34,8 +32,7 @@ describe("UCol.vue", () => {
|
|
|
34
32
|
});
|
|
35
33
|
});
|
|
36
34
|
|
|
37
|
-
|
|
38
|
-
it("applies the correct align class", () => {
|
|
35
|
+
it("Align – applies the correct align class", () => {
|
|
39
36
|
const alignClasses = {
|
|
40
37
|
start: "items-start",
|
|
41
38
|
end: "items-end",
|
|
@@ -55,8 +52,7 @@ describe("UCol.vue", () => {
|
|
|
55
52
|
});
|
|
56
53
|
});
|
|
57
54
|
|
|
58
|
-
|
|
59
|
-
it("applies the correct content class", () => {
|
|
55
|
+
it("Content – applies the correct content class", () => {
|
|
60
56
|
const contentClasses = {
|
|
61
57
|
start: "content-start",
|
|
62
58
|
end: "content-end",
|
|
@@ -80,8 +76,7 @@ describe("UCol.vue", () => {
|
|
|
80
76
|
});
|
|
81
77
|
});
|
|
82
78
|
|
|
83
|
-
|
|
84
|
-
it("applies the correct justify class", () => {
|
|
79
|
+
it("Justify – applies the correct justify class", () => {
|
|
85
80
|
const justifyClasses = {
|
|
86
81
|
start: "justify-start",
|
|
87
82
|
end: "justify-end",
|
|
@@ -102,8 +97,7 @@ describe("UCol.vue", () => {
|
|
|
102
97
|
});
|
|
103
98
|
});
|
|
104
99
|
|
|
105
|
-
|
|
106
|
-
it("applies the correct reverse class", () => {
|
|
100
|
+
it("Reverse – applies the correct reverse class", () => {
|
|
107
101
|
const reverseClasses = {
|
|
108
102
|
true: "flex-col-reverse",
|
|
109
103
|
false: "flex-col",
|
|
@@ -120,8 +114,7 @@ describe("UCol.vue", () => {
|
|
|
120
114
|
});
|
|
121
115
|
});
|
|
122
116
|
|
|
123
|
-
|
|
124
|
-
it("applies the correct wrap class", () => {
|
|
117
|
+
it("Wrap – applies the correct wrap class", () => {
|
|
125
118
|
const wrap = true;
|
|
126
119
|
const expectedClasses = "flex-wrap";
|
|
127
120
|
|
|
@@ -134,8 +127,7 @@ describe("UCol.vue", () => {
|
|
|
134
127
|
expect(component.attributes("class")).toContain(expectedClasses);
|
|
135
128
|
});
|
|
136
129
|
|
|
137
|
-
|
|
138
|
-
it("applies the correct block class", () => {
|
|
130
|
+
it("Block – applies the correct block class", () => {
|
|
139
131
|
const block = true;
|
|
140
132
|
const expectedClasses = "w-full";
|
|
141
133
|
|
|
@@ -148,8 +140,7 @@ describe("UCol.vue", () => {
|
|
|
148
140
|
expect(component.attributes("class")).toContain(expectedClasses);
|
|
149
141
|
});
|
|
150
142
|
|
|
151
|
-
|
|
152
|
-
it("renders the correct HTML tag", () => {
|
|
143
|
+
it("Tag – renders the correct HTML tag", () => {
|
|
153
144
|
const tags = ["div", "section", "article", "main", "aside", "nav", "span"];
|
|
154
145
|
|
|
155
146
|
tags.forEach((tag) => {
|
|
@@ -163,8 +154,7 @@ describe("UCol.vue", () => {
|
|
|
163
154
|
});
|
|
164
155
|
});
|
|
165
156
|
|
|
166
|
-
|
|
167
|
-
it("applies the correct data-test attribute", () => {
|
|
157
|
+
it("Data Test – applies the correct data-test attribute", () => {
|
|
168
158
|
const dataTest = "col-test";
|
|
169
159
|
|
|
170
160
|
const component = mount(UCol, {
|
|
@@ -177,10 +167,8 @@ describe("UCol.vue", () => {
|
|
|
177
167
|
});
|
|
178
168
|
});
|
|
179
169
|
|
|
180
|
-
// Slots tests
|
|
181
170
|
describe("Slots", () => {
|
|
182
|
-
|
|
183
|
-
it("renders content from default slot", () => {
|
|
171
|
+
it("Default – renders content from default slot", () => {
|
|
184
172
|
const slotContent = "Custom Content";
|
|
185
173
|
|
|
186
174
|
const component = mount(UCol, {
|
|
@@ -193,10 +181,8 @@ describe("UCol.vue", () => {
|
|
|
193
181
|
});
|
|
194
182
|
});
|
|
195
183
|
|
|
196
|
-
// Exposed refs tests
|
|
197
184
|
describe("Exposed refs", () => {
|
|
198
|
-
|
|
199
|
-
it("exposes wrapperRef", () => {
|
|
185
|
+
it("wrapperRef – exposes wrapperRef", () => {
|
|
200
186
|
const component = mount(UCol);
|
|
201
187
|
|
|
202
188
|
expect(component.vm.wrapperRef).toBeDefined();
|
|
@@ -86,6 +86,7 @@ export default /*tw*/ {
|
|
|
86
86
|
outlined: "bg-default border-muted",
|
|
87
87
|
subtle: "bg-muted border-default/50",
|
|
88
88
|
soft: "bg-muted border-transparent",
|
|
89
|
+
inverted: "bg-inverted border-transparent",
|
|
89
90
|
},
|
|
90
91
|
position: {
|
|
91
92
|
top: "top-0 flex-col rounded-b-large w-full h-auto",
|