From 884b0c01e8de77525a06980aef52c5ce58efc805 Mon Sep 17 00:00:00 2001 From: Danijel Martinek Date: Mon, 4 May 2026 20:43:23 +0200 Subject: [PATCH] fix(core-shared): narrow Payload Field union before accessing name in tests Payload's Field type is a discriminated union; field.name only exists on named variants. Tests now narrow on type (and 'name' in field for groups) before reading variant-specific properties. Co-Authored-By: Claude Opus 4.7 (1M context) --- packages/core-shared/src/payload/fields/seo-fields.test.ts | 3 +++ packages/core-shared/src/payload/fields/slug-field.test.ts | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/packages/core-shared/src/payload/fields/seo-fields.test.ts b/packages/core-shared/src/payload/fields/seo-fields.test.ts index 3cf05fc..f894e8f 100644 --- a/packages/core-shared/src/payload/fields/seo-fields.test.ts +++ b/packages/core-shared/src/payload/fields/seo-fields.test.ts @@ -3,6 +3,9 @@ import { seoFields } from "./seo-fields"; describe("seoFields", () => { it("is a group field named 'seo'", () => { + if (seoFields.type !== "group" || !("name" in seoFields)) { + throw new Error("seoFields must be a named group"); + } expect(seoFields.name).toBe("seo"); expect(seoFields.type).toBe("group"); }); diff --git a/packages/core-shared/src/payload/fields/slug-field.test.ts b/packages/core-shared/src/payload/fields/slug-field.test.ts index 32e4ab1..a0fbb08 100644 --- a/packages/core-shared/src/payload/fields/slug-field.test.ts +++ b/packages/core-shared/src/payload/fields/slug-field.test.ts @@ -4,8 +4,8 @@ import { slugField } from "./slug-field"; describe("slugField", () => { it("returns a Payload Field with default name 'slug'", () => { const field = slugField(); + if (field.type !== "text") throw new Error("expected text field"); expect(field.name).toBe("slug"); - expect(field.type).toBe("text"); expect(field.required).toBe(true); expect(field.unique).toBe(true); expect(field.index).toBe(true); @@ -13,6 +13,7 @@ describe("slugField", () => { it("accepts a custom field name", () => { const field = slugField("permalink"); + if (field.type !== "text") throw new Error("expected text field"); expect(field.name).toBe("permalink"); }); });