diff --git a/packages/core-shared/src/payload/fields/slug-field.test.ts b/packages/core-shared/src/payload/fields/slug-field.test.ts new file mode 100644 index 0000000..32e4ab1 --- /dev/null +++ b/packages/core-shared/src/payload/fields/slug-field.test.ts @@ -0,0 +1,18 @@ +import { describe, expect, it } from "vitest"; +import { slugField } from "./slug-field"; + +describe("slugField", () => { + it("returns a Payload Field with default name 'slug'", () => { + const field = slugField(); + 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); + }); + + it("accepts a custom field name", () => { + const field = slugField("permalink"); + expect(field.name).toBe("permalink"); + }); +}); diff --git a/packages/core-shared/src/payload/fields/slug-field.ts b/packages/core-shared/src/payload/fields/slug-field.ts new file mode 100644 index 0000000..213d6f4 --- /dev/null +++ b/packages/core-shared/src/payload/fields/slug-field.ts @@ -0,0 +1,11 @@ +import type { Field } from "payload"; + +export function slugField(name = "slug"): Field { + return { + name, + type: "text", + required: true, + unique: true, + index: true, + }; +}