github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/web/src/SidebarIcon.test.tsx (about) 1 import { render, screen } from "@testing-library/react" 2 import React from "react" 3 import SidebarIcon from "./SidebarIcon" 4 import { ResourceStatus } from "./types" 5 6 const cases: Array<[string, ResourceStatus]> = [ 7 ["isPending", ResourceStatus.Pending], 8 ["isHealthy", ResourceStatus.Healthy], 9 ["isUnhealthy", ResourceStatus.Unhealthy], 10 ["isBuilding", ResourceStatus.Building], 11 ["isWarning", ResourceStatus.Warning], 12 ["isNone", ResourceStatus.None], 13 ] 14 15 describe("SidebarIcon", () => { 16 test.each(cases)( 17 "renders with the correct classes - %s", 18 (className, status) => { 19 render(<SidebarIcon status={status} tooltipText={"help"} />) 20 21 const iconWrapper = screen.getByTitle("help") 22 expect(iconWrapper).toHaveClass(className) 23 } 24 ) 25 26 it("adds a tooltip with the correct text", () => { 27 render( 28 <SidebarIcon 29 status={ResourceStatus.Unhealthy} 30 tooltipText="What a tip!" 31 /> 32 ) 33 34 const tooltip = screen.getByRole("tooltip") 35 expect(tooltip).toBeInTheDocument() 36 expect(tooltip.title).toBe("What a tip!") 37 }) 38 })