github.com/tilt-dev/tilt@v0.33.15-0.20240515162809-0a22ed45d8a0/web/src/labels.test.ts (about)

     1  import Features, { Flag } from "./feature"
     2  import { getResourceLabels, resourcesHaveLabels } from "./labels"
     3  import { nResourceView, nResourceWithLabelsView } from "./testdata"
     4  
     5  describe("Resource label helpers", () => {
     6    describe("resourcesHaveLabels", () => {
     7      it("returns `false` if labels feature is not enabled", () => {
     8        const { uiResources } = nResourceWithLabelsView(5)
     9        const features = new Features({ [Flag.Labels]: false })
    10  
    11        expect(
    12          resourcesHaveLabels(features, uiResources, getResourceLabels)
    13        ).toBe(false)
    14      })
    15  
    16      it("returns `false` if labels feature is enabled but no resources have labels", () => {
    17        const { uiResources } = nResourceView(5)
    18        const features = new Features({ [Flag.Labels]: true })
    19  
    20        expect(
    21          resourcesHaveLabels(features, uiResources, getResourceLabels)
    22        ).toBe(false)
    23      })
    24  
    25      it("returns `true` if labels feature is enabled and at least one resource has labels", () => {
    26        const { uiResources } = nResourceWithLabelsView(2)
    27        const features = new Features({ [Flag.Labels]: true })
    28  
    29        expect(
    30          resourcesHaveLabels(features, uiResources, getResourceLabels)
    31        ).toBe(true)
    32      })
    33    })
    34  
    35    describe("getResourceLabels", () => {
    36      describe("when a resource doesn't have labels", () => {
    37        it("returns an empty list if there are no labels", () => {
    38          const resource = nResourceView(1).uiResources[0]
    39          expect(getResourceLabels(resource)).toStrictEqual([])
    40        })
    41  
    42        it("returns an empty list if metadata is undefined", () => {
    43          const resource = nResourceView(1).uiResources[0]
    44          resource.metadata = undefined
    45          expect(getResourceLabels(resource)).toStrictEqual([])
    46        })
    47  
    48        it("returns an empty list if labels are undefined", () => {
    49          const resource = nResourceView(1).uiResources[0]
    50          resource.metadata!.labels = undefined
    51          expect(getResourceLabels(resource)).toStrictEqual([])
    52        })
    53      })
    54  
    55      describe("when a resource has labels", () => {
    56        it("returns a list of labels", () => {
    57          const resource = nResourceView(1).uiResources[0]
    58          resource.metadata!.labels = {
    59            testLabel: "testLabel",
    60            anotherLabel: "anotherLabel",
    61          }
    62          expect(getResourceLabels(resource)).toEqual([
    63            "testLabel",
    64            "anotherLabel",
    65          ])
    66        })
    67  
    68        it("does not return prefixed labels", () => {
    69          const resource = nResourceView(1).uiResources[0]
    70          resource.metadata!.labels = {
    71            "prefixed/label": "prefixed/label",
    72            anotherLabel: "anotherLabel",
    73          }
    74          expect(getResourceLabels(resource)).toEqual(["anotherLabel"])
    75        })
    76      })
    77    })
    78  })