72 lines
2.6 KiB
TypeScript
72 lines
2.6 KiB
TypeScript
/* eslint-disable quotes */
|
|
import {
|
|
parseAiAutoGeneratedFieldsText,
|
|
parseTitleAndCaption,
|
|
} from "@/photo/ai";
|
|
|
|
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."'`
|
|
)).toStrictEqual({
|
|
title: 'Ephemeral Beauty',
|
|
caption: 'Roses bask in fleeting sunlight',
|
|
});
|
|
// Without surrounding single quotes
|
|
expect(parseTitleAndCaption(
|
|
`Title: "Ephemeral Beauty" Caption: "Roses bask in fleeting sunlight."`
|
|
)).toStrictEqual({
|
|
title: 'Ephemeral Beauty',
|
|
caption: 'Roses bask in fleeting sunlight',
|
|
});
|
|
// Without trailing period
|
|
expect(parseTitleAndCaption(
|
|
`Title: "Ephemeral Beauty" Caption: "Roses bask in fleeting sunlight"`
|
|
)).toStrictEqual({
|
|
title: 'Ephemeral Beauty',
|
|
caption: 'Roses bask in fleeting sunlight',
|
|
});
|
|
// Without and quotes
|
|
expect(parseTitleAndCaption(
|
|
`Title: Ephemeral Beauty Caption: Roses bask in fleeting sunlight`
|
|
)).toStrictEqual({
|
|
title: 'Ephemeral Beauty',
|
|
caption: 'Roses bask in fleeting sunlight',
|
|
});
|
|
// With single space
|
|
expect(parseTitleAndCaption(
|
|
`Title: Ephemeral Beauty Caption: Roses bask in fleeting sunlight`
|
|
)).toStrictEqual({
|
|
title: 'Ephemeral Beauty',
|
|
caption: 'Roses bask in fleeting sunlight',
|
|
});
|
|
});
|
|
});
|