60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
import {
|
|
changelogEntries,
|
|
getChangelogEntriesNewestFirst,
|
|
isChangelogEntries,
|
|
} from '../src/data';
|
|
|
|
describe('changelog data', () => {
|
|
it('provides valid changelog entries', () => {
|
|
expect(isChangelogEntries(changelogEntries)).toBe(true);
|
|
expect(changelogEntries.length).toBeGreaterThan(0);
|
|
expect(changelogEntries[0]).toEqual(
|
|
expect.objectContaining({
|
|
id: 'build-metadata-changelog-poc',
|
|
title: 'Build Metadata and Changelog Scaffold',
|
|
}),
|
|
);
|
|
});
|
|
|
|
it('sorts changelog entries newest first', () => {
|
|
const sortedEntries = getChangelogEntriesNewestFirst([
|
|
{
|
|
changes: ['Older change'],
|
|
createdAt: '2026-06-01',
|
|
id: 'older-entry',
|
|
summary: 'Older summary',
|
|
title: 'Older Entry',
|
|
version: '0.0.1',
|
|
},
|
|
{
|
|
changes: ['Newer change'],
|
|
createdAt: '2026-06-16',
|
|
id: 'newer-entry',
|
|
summary: 'Newer summary',
|
|
title: 'Newer Entry',
|
|
version: '0.0.2',
|
|
},
|
|
]);
|
|
|
|
expect(sortedEntries.map(entry => entry.id)).toEqual([
|
|
'newer-entry',
|
|
'older-entry',
|
|
]);
|
|
});
|
|
|
|
it('rejects malformed changelog data', () => {
|
|
expect(
|
|
isChangelogEntries([
|
|
{
|
|
changes: 'not-an-array',
|
|
createdAt: '2026-06-16',
|
|
id: 'bad',
|
|
summary: 'Bad entry',
|
|
title: 'Bad',
|
|
version: '0.0.1',
|
|
},
|
|
]),
|
|
).toBe(false);
|
|
});
|
|
});
|