WIP test(file-uploader): add unit tests

This commit is contained in:
Eric Liu 2025-04-12 14:53:59 -07:00
commit 8295ce1259
3 changed files with 69 additions and 64 deletions

View file

@ -0,0 +1,40 @@
<script lang="ts">
import { FileUploader } from "carbon-components-svelte";
import type { ComponentProps } from "svelte";
export let status: ComponentProps<FileUploader>["status"] = "uploading";
export let disabled = false;
export let accept: ComponentProps<FileUploader>["accept"] = [];
export let multiple = false;
export let labelTitle = "Test Upload";
export let labelDescription = "Test Description";
export let buttonLabel = "Add File";
export let iconDescription = "Test icon";
export let name = "test-upload";
export let kind: ComponentProps<FileUploader>["kind"] = "primary";
export let size: ComponentProps<FileUploader>["size"] = "small";
</script>
<FileUploader
data-testid="file-uploader"
{status}
{disabled}
{accept}
{multiple}
{labelTitle}
{labelDescription}
{buttonLabel}
{iconDescription}
{name}
{kind}
{size}
on:add={(e) => {
console.log("add", e.detail);
}}
on:remove={(e) => {
console.log("remove", e.detail);
}}
on:change={(e) => {
console.log("change", e.detail);
}}
/>

View file

@ -0,0 +1,29 @@
import { render, screen } from "@testing-library/svelte";
import FileUploaderTest from "./FileUploader.test.svelte";
describe("FileUploader", () => {
it("renders with default props", () => {
render(FileUploaderTest);
const uploader = screen.getByTestId("file-uploader");
expect(uploader).toBeInTheDocument();
expect(uploader).toHaveClass("bx--form-item");
});
it("renders with custom labels", () => {
render(FileUploaderTest, {
labelTitle: "Custom Title",
labelDescription: "Custom Description",
buttonLabel: "Custom Button",
});
expect(screen.getByText("Custom Title")).toBeInTheDocument();
expect(screen.getByText("Custom Description")).toBeInTheDocument();
expect(screen.getByText("Custom Button")).toBeInTheDocument();
});
it("renders with disabled state", () => {
render(FileUploaderTest, { disabled: true });
const button = screen.getByLabelText("Add File");
expect(button).toHaveAttribute("disabled");
});
});