From 75c9ba767737d3d114b10862050f9206c145d56f Mon Sep 17 00:00:00 2001 From: Sam Becker Date: Tue, 14 May 2024 11:18:18 -0500 Subject: [PATCH] Refine AI configuration documentation --- README.md | 8 +++++++- __tests__/ai.test.ts | 35 ++++++++++++++++++++++++++++++++--- 2 files changed, 39 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index fc1e3e76..f599a13f 100644 --- a/README.md +++ b/README.md @@ -74,7 +74,13 @@ _⚠️ READ BEFORE PROCEEDING_ - As an additional precaution, create a [Vercel KV](https://vercel.com/docs/storage/vercel-kv/quickstart#create-a-kv-database) store and link it to your project in order to enable rate limiting 3. Configure auto-generated fields (optional) - Set which text fields auto-generate when uploading a photo by storing a comma-separated list, e.g., `AI_TEXT_AUTO_GENERATED_FIELDS = title,semantic` - - Accepted values: title, caption, tags, description, all, or none (default is "all") + - Accepted values: + - `all` (default) + - `title` + - `caption` + - `tags` + - `description` + - `none` ### Web Analytics diff --git a/__tests__/ai.test.ts b/__tests__/ai.test.ts index b70c93a0..22e532c8 100644 --- a/__tests__/ai.test.ts +++ b/__tests__/ai.test.ts @@ -1,8 +1,37 @@ /* eslint-disable quotes */ -import { parseTitleAndCaption } from "@/photo/ai"; +import { + parseAiAutoGeneratedFieldsText, + parseTitleAndCaption, +} from "@/photo/ai"; -describe('AI text parses', () => { - it('titles and captions', () => { +describe('AI parses', () => { + describe('auto-generated fields', () => { + it('with spaces', () => { + expect(parseAiAutoGeneratedFieldsText()) + .toStrictEqual(['title', 'caption', 'tags', 'semantic']); + expect(parseAiAutoGeneratedFieldsText('all')) + .toStrictEqual(['title', 'caption', 'tags', 'semantic']); + expect(parseAiAutoGeneratedFieldsText('title')) + .toStrictEqual(['title']); + expect(parseAiAutoGeneratedFieldsText('title, caption')) + .toStrictEqual(['title', 'caption']); + expect(parseAiAutoGeneratedFieldsText('title, caption, invalid')) + .toStrictEqual(['title', 'caption']); + expect(parseAiAutoGeneratedFieldsText('title, caption, invalid, tags')) + .toStrictEqual(['title', 'caption', 'tags']); + expect(parseAiAutoGeneratedFieldsText('none')) + .toStrictEqual([]); + }); + it('without spaces', () => { + expect(parseAiAutoGeneratedFieldsText('title,caption')) + .toStrictEqual(['title', 'caption']); + expect(parseAiAutoGeneratedFieldsText('title,caption,invalid')) + .toStrictEqual(['title', 'caption']); + expect(parseAiAutoGeneratedFieldsText('title,caption,invalid,tags')) + .toStrictEqual(['title', 'caption', 'tags']); + }); + }); + it('received titles and captions', () => { // Complex case expect(parseTitleAndCaption( `'Title: "Ephemeral Beauty" Caption: "Roses bask in fleeting sunlight."'`