|
1 | 1 | import { render, screen } from "@testing-library/svelte"; |
| 2 | +import type { MultiSelectItem } from "carbon-components-svelte/MultiSelect/MultiSelect.svelte"; |
| 3 | +import type { ComponentProps } from "svelte"; |
2 | 4 | import { user } from "../setup-tests"; |
3 | 5 | import MultiSelect from "./MultiSelect.test.svelte"; |
4 | 6 | import MultiSelectSlot from "./MultiSelectSlot.test.svelte"; |
@@ -167,15 +169,15 @@ describe("MultiSelect", () => { |
167 | 169 |
|
168 | 170 | it("uses custom filter function", async () => { |
169 | 171 | const consoleLog = vi.spyOn(console, "log"); |
170 | | - render(MultiSelect, { |
171 | | - props: { |
172 | | - items, |
173 | | - filterable: true, |
174 | | - filterItem: (item, value) => { |
175 | | - return item.text.toLowerCase().startsWith(value.toLowerCase()); |
176 | | - }, |
| 172 | + const props = { |
| 173 | + items, |
| 174 | + filterable: true, |
| 175 | + filterItem: (item: MultiSelectItem, value: string) => { |
| 176 | + return item.text.toLowerCase().startsWith(value.toLowerCase()); |
177 | 177 | }, |
178 | | - }); |
| 178 | + } satisfies ComponentProps<MultiSelect>; |
| 179 | + |
| 180 | + render(MultiSelect, { props }); |
179 | 181 |
|
180 | 182 | const input = screen.getByRole("combobox"); |
181 | 183 | await user.click(input); |
@@ -492,27 +494,27 @@ describe("MultiSelect", () => { |
492 | 494 |
|
493 | 495 | describe("custom formatting", () => { |
494 | 496 | it("handles custom itemToString", () => { |
495 | | - render(MultiSelect, { |
496 | | - props: { |
497 | | - items, |
498 | | - selectedIds: ["0"], |
499 | | - itemToString: (item) => `${item.text} (${item.id})`, |
500 | | - }, |
501 | | - }); |
| 497 | + const props = { |
| 498 | + items, |
| 499 | + selectedIds: ["0"], |
| 500 | + itemToString: (item: MultiSelectItem) => `${item.text} (${item.id})`, |
| 501 | + } satisfies ComponentProps<MultiSelect>; |
| 502 | + |
| 503 | + render(MultiSelect, { props }); |
502 | 504 |
|
503 | 505 | expect(screen.getByText("Slack (0)")).toBeInTheDocument(); |
504 | 506 | }); |
505 | 507 |
|
506 | 508 | it("handles custom itemToInput", async () => { |
507 | | - render(MultiSelect, { |
508 | | - props: { |
509 | | - items, |
510 | | - itemToInput: (item) => ({ |
511 | | - name: `contact_${item.id}`, |
512 | | - value: item.text.toLowerCase(), |
513 | | - }), |
514 | | - }, |
515 | | - }); |
| 509 | + const props = { |
| 510 | + items, |
| 511 | + itemToInput: (item: MultiSelectItem) => ({ |
| 512 | + name: `contact_${item.id}`, |
| 513 | + value: item.text.toLowerCase(), |
| 514 | + }), |
| 515 | + } satisfies ComponentProps<MultiSelect>; |
| 516 | + |
| 517 | + render(MultiSelect, { props }); |
516 | 518 |
|
517 | 519 | await openMenu(); |
518 | 520 | const checkbox = screen.getByText("Slack"); |
|
0 commit comments