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