Skip to content

Commit e0128c5

Browse files
committed
test: date synonym handling
1 parent ef24c34 commit e0128c5

File tree

2 files changed

+53
-0
lines changed

2 files changed

+53
-0
lines changed

packages/decap-cms-core/src/lib/__tests__/formatters.spec.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,20 @@ describe('formatters', () => {
326326
).toBe('2026-10-20-post-title');
327327
});
328328

329+
it('should see date filters applied to publishDate from entry if it exists', () => {
330+
const { selectInferredField } = require('../../reducers/collections');
331+
selectInferredField.mockReturnValue('publishDate');
332+
const entryDate = new Date('2026-10-20');
333+
334+
expect(
335+
slugFormatter(
336+
Map({ slug: '{{year}}-{{month}}-{{day}}-{{title}}' }),
337+
Map({ publishDate: entryDate, title: 'post title' }),
338+
slugConfig,
339+
),
340+
).toBe('2026-10-20-post-title');
341+
});
342+
329343
it('should return slug', () => {
330344
selectIdentifier.mockReturnValueOnce('title');
331345

packages/decap-cms-core/src/reducers/__tests__/collections.spec.js

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import collections, {
1111
getFieldsNames,
1212
selectField,
1313
updateFieldByKey,
14+
selectInferredField,
1415
} from '../collections';
1516
import { FILES, FOLDER } from '../../constants/collectionTypes';
1617

@@ -568,4 +569,42 @@ describe('collections', () => {
568569
);
569570
});
570571
});
572+
573+
describe("selectInferredField(collection, 'date')", () => {
574+
it('should return publishDate if set', () => {
575+
const collection = fromJS({
576+
fields: [{ name: 'title' }, { name: 'publishDate', widget: 'datetime' }],
577+
});
578+
579+
expect(selectInferredField(collection, 'date')).toEqual('publishDate');
580+
});
581+
582+
it('should return publish_date if set', () => {
583+
const collection = fromJS({
584+
fields: [{ name: 'title' }, { name: 'publish_date', widget: 'datetime' }],
585+
});
586+
587+
expect(selectInferredField(collection, 'date')).toEqual('publish_date');
588+
});
589+
590+
it('should return date if set', () => {
591+
const collection = fromJS({
592+
fields: [{ name: 'title' }, { name: 'date', widget: 'datetime' }],
593+
});
594+
595+
expect(selectInferredField(collection, 'date')).toEqual('date');
596+
});
597+
598+
it('should return first date field if multiple synonyms are present', () => {
599+
const collection = fromJS({
600+
fields: [
601+
{ name: 'title' },
602+
{ name: 'publishDate', widget: 'datetime' },
603+
{ name: 'date', widget: 'datetime' },
604+
],
605+
});
606+
607+
expect(selectInferredField(collection, 'date')).toEqual('publishDate');
608+
});
609+
});
571610
});

0 commit comments

Comments
 (0)