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  })