From 663b79ad054d14a91a8bf700feb62dcf50976eb8 Mon Sep 17 00:00:00 2001 From: Eric Liu Date: Tue, 11 Mar 2025 10:09:28 -0700 Subject: [PATCH] fix(select): falsy item `text` should not override `value` (#2118) Fixes #2117 --- src/Select/SelectItem.svelte | 2 +- tests/Select/Select.falsy.test.svelte | 9 +++++++++ tests/Select/Select.test.ts | 8 ++++++++ 3 files changed, 18 insertions(+), 1 deletion(-) create mode 100644 tests/Select/Select.falsy.test.svelte diff --git a/src/Select/SelectItem.svelte b/src/Select/SelectItem.svelte index 9bb6b556..5a5abac8 100644 --- a/src/Select/SelectItem.svelte +++ b/src/Select/SelectItem.svelte @@ -55,5 +55,5 @@ class={className} {style} > - {text || value} + {text ?? value} diff --git a/tests/Select/Select.falsy.test.svelte b/tests/Select/Select.falsy.test.svelte new file mode 100644 index 00000000..2583be30 --- /dev/null +++ b/tests/Select/Select.falsy.test.svelte @@ -0,0 +1,9 @@ + + + diff --git a/tests/Select/Select.test.ts b/tests/Select/Select.test.ts index 5e442323..1d4800b4 100644 --- a/tests/Select/Select.test.ts +++ b/tests/Select/Select.test.ts @@ -3,6 +3,7 @@ import { user } from "../setup-tests"; import Select from "./Select.test.svelte"; import SelectGroup from "./Select.group.test.svelte"; import SelectSkeleton from "./Select.skeleton.test.svelte"; +import SelectFalsy from "./Select.falsy.test.svelte"; describe("Select", () => { beforeEach(() => { @@ -238,4 +239,11 @@ describe("Select", () => { expect(skeleton).toBeInTheDocument(); expect(skeleton.children[0]).toHaveClass("bx--skeleton"); }); + + it("renders value if `text` is falsy", () => { + render(SelectFalsy); + + expect(screen.getByLabelText("Falsy text")).toHaveValue("-1"); + expect(screen.getByDisplayValue("")).toBeInTheDocument(); + }); });