diff --git a/packages/core-shared/src/payload/fields/seo-fields.test.ts b/packages/core-shared/src/payload/fields/seo-fields.test.ts new file mode 100644 index 0000000..3cf05fc --- /dev/null +++ b/packages/core-shared/src/payload/fields/seo-fields.test.ts @@ -0,0 +1,27 @@ +import { describe, expect, it } from "vitest"; +import { seoFields } from "./seo-fields"; + +describe("seoFields", () => { + it("is a group field named 'seo'", () => { + expect(seoFields.name).toBe("seo"); + expect(seoFields.type).toBe("group"); + }); + + it("contains required title and optional description", () => { + if (seoFields.type !== "group") { + throw new Error("seoFields must be a group"); + } + const fieldNames = seoFields.fields.map((f) => + "name" in f ? f.name : null, + ); + expect(fieldNames).toContain("title"); + expect(fieldNames).toContain("description"); + + const titleField = seoFields.fields.find( + (f) => "name" in f && f.name === "title", + ); + expect(titleField && "required" in titleField && titleField.required).toBe( + true, + ); + }); +}); diff --git a/packages/core-shared/src/payload/fields/seo-fields.ts b/packages/core-shared/src/payload/fields/seo-fields.ts new file mode 100644 index 0000000..f02a2e0 --- /dev/null +++ b/packages/core-shared/src/payload/fields/seo-fields.ts @@ -0,0 +1,10 @@ +import type { Field } from "payload"; + +export const seoFields: Field = { + name: "seo", + type: "group", + fields: [ + { name: "title", type: "text", required: true }, + { name: "description", type: "textarea" }, + ], +};