style: Format test files with Prettier

Co-Authored-By: ashwin@anthropic.com <ashwin@anthropic.com>
This commit is contained in:
Devin AI
2025-01-16 19:27:49 +00:00
parent ce7f65b5be
commit bb6ab5a85a
5 changed files with 100 additions and 95 deletions

View File

@@ -1,54 +1,59 @@
import { render, screen, fireEvent } from '@testing-library/react' import { render, screen, fireEvent } from "@testing-library/react";
import ListPane from './ListPane' import ListPane from "./ListPane";
import { describe, it, expect, vi } from 'vitest' import { describe, it, expect, vi } from "vitest";
describe('ListPane', () => { describe("ListPane", () => {
const defaultProps = { const defaultProps = {
items: [{ id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }], items: [
{ id: 1, name: "Item 1" },
{ id: 2, name: "Item 2" },
],
listItems: vi.fn(), listItems: vi.fn(),
clearItems: vi.fn(), clearItems: vi.fn(),
setSelectedItem: vi.fn(), setSelectedItem: vi.fn(),
renderItem: (item: { name: string }) => <span>{item.name}</span>, renderItem: (item: { name: string }) => <span>{item.name}</span>,
title: 'Test List', title: "Test List",
buttonText: 'List Items' buttonText: "List Items",
} };
it('renders title correctly', () => { it("renders title correctly", () => {
render(<ListPane {...defaultProps} />) render(<ListPane {...defaultProps} />);
expect(screen.getByText('Test List')).toBeInTheDocument() expect(screen.getByText("Test List")).toBeInTheDocument();
}) });
it('renders list items using renderItem prop', () => { it("renders list items using renderItem prop", () => {
render(<ListPane {...defaultProps} />) render(<ListPane {...defaultProps} />);
expect(screen.getByText('Item 1')).toBeInTheDocument() expect(screen.getByText("Item 1")).toBeInTheDocument();
expect(screen.getByText('Item 2')).toBeInTheDocument() expect(screen.getByText("Item 2")).toBeInTheDocument();
}) });
it('calls listItems when List Items button is clicked', () => { it("calls listItems when List Items button is clicked", () => {
render(<ListPane {...defaultProps} />) render(<ListPane {...defaultProps} />);
fireEvent.click(screen.getByText('List Items')) fireEvent.click(screen.getByText("List Items"));
expect(defaultProps.listItems).toHaveBeenCalledTimes(1) expect(defaultProps.listItems).toHaveBeenCalledTimes(1);
}) });
it('calls clearItems when Clear button is clicked', () => { it("calls clearItems when Clear button is clicked", () => {
render(<ListPane {...defaultProps} />) render(<ListPane {...defaultProps} />);
fireEvent.click(screen.getByText('Clear')) fireEvent.click(screen.getByText("Clear"));
expect(defaultProps.clearItems).toHaveBeenCalledTimes(1) expect(defaultProps.clearItems).toHaveBeenCalledTimes(1);
}) });
it('calls setSelectedItem when an item is clicked', () => { it("calls setSelectedItem when an item is clicked", () => {
render(<ListPane {...defaultProps} />) render(<ListPane {...defaultProps} />);
fireEvent.click(screen.getByText('Item 1')) fireEvent.click(screen.getByText("Item 1"));
expect(defaultProps.setSelectedItem).toHaveBeenCalledWith(defaultProps.items[0]) expect(defaultProps.setSelectedItem).toHaveBeenCalledWith(
}) defaultProps.items[0],
);
});
it('disables Clear button when items array is empty', () => { it("disables Clear button when items array is empty", () => {
render(<ListPane {...defaultProps} items={[]} />) render(<ListPane {...defaultProps} items={[]} />);
expect(screen.getByText('Clear')).toBeDisabled() expect(screen.getByText("Clear")).toBeDisabled();
}) });
it('respects isButtonDisabled prop for List Items button', () => { it("respects isButtonDisabled prop for List Items button", () => {
render(<ListPane {...defaultProps} isButtonDisabled={true} />) render(<ListPane {...defaultProps} isButtonDisabled={true} />);
expect(screen.getByText('List Items')).toBeDisabled() expect(screen.getByText("List Items")).toBeDisabled();
}) });
}) });

View File

@@ -1,55 +1,55 @@
import { render, screen, fireEvent } from '@testing-library/react' import { render, screen, fireEvent } from "@testing-library/react";
import { Button } from './button' import { Button } from "./button";
import { describe, it, expect, vi } from 'vitest' import { describe, it, expect, vi } from "vitest";
import { createRef } from 'react' import { createRef } from "react";
describe('Button', () => { describe("Button", () => {
it('renders children correctly', () => { it("renders children correctly", () => {
render(<Button>Click me</Button>) render(<Button>Click me</Button>);
expect(screen.getByText('Click me')).toBeInTheDocument() expect(screen.getByText("Click me")).toBeInTheDocument();
}) });
it('handles click events', () => { it("handles click events", () => {
const handleClick = vi.fn() const handleClick = vi.fn();
render(<Button onClick={handleClick}>Click me</Button>) render(<Button onClick={handleClick}>Click me</Button>);
fireEvent.click(screen.getByText('Click me')) fireEvent.click(screen.getByText("Click me"));
expect(handleClick).toHaveBeenCalledTimes(1) expect(handleClick).toHaveBeenCalledTimes(1);
}) });
it('applies different variants correctly', () => { it("applies different variants correctly", () => {
const { rerender } = render(<Button variant="default">Default</Button>) const { rerender } = render(<Button variant="default">Default</Button>);
expect(screen.getByText('Default')).toHaveClass('bg-primary') expect(screen.getByText("Default")).toHaveClass("bg-primary");
rerender(<Button variant="outline">Outline</Button>) rerender(<Button variant="outline">Outline</Button>);
expect(screen.getByText('Outline')).toHaveClass('border-input') expect(screen.getByText("Outline")).toHaveClass("border-input");
rerender(<Button variant="secondary">Secondary</Button>) rerender(<Button variant="secondary">Secondary</Button>);
expect(screen.getByText('Secondary')).toHaveClass('bg-secondary') expect(screen.getByText("Secondary")).toHaveClass("bg-secondary");
}) });
it('applies different sizes correctly', () => { it("applies different sizes correctly", () => {
const { rerender } = render(<Button size="default">Default</Button>) const { rerender } = render(<Button size="default">Default</Button>);
expect(screen.getByText('Default')).toHaveClass('h-9') expect(screen.getByText("Default")).toHaveClass("h-9");
rerender(<Button size="sm">Small</Button>) rerender(<Button size="sm">Small</Button>);
expect(screen.getByText('Small')).toHaveClass('h-8') expect(screen.getByText("Small")).toHaveClass("h-8");
rerender(<Button size="lg">Large</Button>) rerender(<Button size="lg">Large</Button>);
expect(screen.getByText('Large')).toHaveClass('h-10') expect(screen.getByText("Large")).toHaveClass("h-10");
}) });
it('forwards ref correctly', () => { it("forwards ref correctly", () => {
const ref = createRef<HTMLButtonElement>() const ref = createRef<HTMLButtonElement>();
render(<Button ref={ref}>Button with ref</Button>) render(<Button ref={ref}>Button with ref</Button>);
expect(ref.current).toBeInstanceOf(HTMLButtonElement) expect(ref.current).toBeInstanceOf(HTMLButtonElement);
}) });
it('renders as a different element when asChild is true', () => { it("renders as a different element when asChild is true", () => {
render( render(
<Button asChild> <Button asChild>
<a href="#">Link Button</a> <a href="#">Link Button</a>
</Button> </Button>,
) );
expect(screen.getByText('Link Button').tagName).toBe('A') expect(screen.getByText("Link Button").tagName).toBe("A");
}) });
}) });

View File

@@ -1,7 +1,7 @@
/// <reference types="vitest/globals" /> /// <reference types="vitest/globals" />
/// <reference types="@testing-library/jest-dom" /> /// <reference types="@testing-library/jest-dom" />
import '@testing-library/jest-dom' import "@testing-library/jest-dom";
declare global { declare global {
namespace Vi { namespace Vi {
@@ -9,4 +9,4 @@ declare global {
} }
} }
export {} export {};

View File

@@ -1,6 +1,6 @@
/// <reference types="vitest/globals" /> /// <reference types="vitest/globals" />
/// <reference types="@testing-library/jest-dom" /> /// <reference types="@testing-library/jest-dom" />
import '@testing-library/jest-dom/vitest' import "@testing-library/jest-dom/vitest";
// Add any additional test setup, custom matchers, or global mocks here // Add any additional test setup, custom matchers, or global mocks here
// This file runs before each test file // This file runs before each test file

View File

@@ -1,20 +1,20 @@
import { defineConfig } from 'vitest/config' import { defineConfig } from "vitest/config";
import react from '@vitejs/plugin-react' import react from "@vitejs/plugin-react";
import path from 'path' import path from "path";
export default defineConfig({ export default defineConfig({
plugins: [react()], plugins: [react()],
test: { test: {
environment: 'jsdom', environment: "jsdom",
globals: true, globals: true,
setupFiles: ['./test/setupTests.ts'], setupFiles: ["./test/setupTests.ts"],
typecheck: { typecheck: {
tsconfig: './tsconfig.test.json' tsconfig: "./tsconfig.test.json",
} },
}, },
resolve: { resolve: {
alias: { alias: {
'@': path.resolve(__dirname, './src'), "@": path.resolve(__dirname, "./src"),
}, },
}, },
}) });