diff --git a/ui/src/components/select-picker.test.ts b/ui/src/components/select-picker.test.ts new file mode 100644 index 000000000000..5cf016f39a86 --- /dev/null +++ b/ui/src/components/select-picker.test.ts @@ -0,0 +1,23 @@ +// The shared picker keeps a 138px readable-label floor (phone-width ellipsis +// fix) but must never exceed its host container: cron/channel grid cells +// legitimately shrink below 138px and an unconditional floor overflows them. +import { render } from "lit"; +import { describe, expect, it } from "vitest"; +import { renderPicker } from "./select-picker.ts"; + +describe("renderPicker", () => { + it("caps the readable-label floor at the host container width", () => { + const host = document.createElement("div"); + render( + renderPicker({ + label: "Unit", + value: "minutes", + options: [{ value: "minutes", label: "minutes" }], + onChange: () => {}, + }), + host, + ); + const select = host.querySelector("wa-select"); + expect(select?.getAttribute("style")).toContain("min-width:min(138px,100%)"); + }); +}); diff --git a/ui/src/components/select-picker.ts b/ui/src/components/select-picker.ts index 2f28a17dc53d..19766a803e02 100644 --- a/ui/src/components/select-picker.ts +++ b/ui/src/components/select-picker.ts @@ -24,8 +24,9 @@ export type PickerParams