File size: 2,208 Bytes
d522ffa | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | import { describe, expect, it } from 'vitest';
import { mergeLegacyMetadata } from '../../src/sessions/source.js';
describe('mergeLegacyMetadata', () => {
it('fills a missing custom title from metadata, skipping "Untitled"', () => {
expect(mergeLegacyMetadata({}, { title: 'Legacy Title' }).custom_title).toBe('Legacy Title');
expect(
mergeLegacyMetadata({ custom_title: null }, { title: 'Untitled' }).custom_title,
).toBe(null);
expect(mergeLegacyMetadata({}, { title: 'Untitled' }).custom_title).toBeUndefined();
});
it('keeps the state.json title when both exist', () => {
expect(
mergeLegacyMetadata({ custom_title: 'State Title' }, { title: 'Legacy Title' }).custom_title,
).toBe('State Title');
});
it('fills archive fields only while state holds defaults', () => {
const merged = mergeLegacyMetadata(
{ archived: false, archived_at: null, auto_archive_exempt: false },
{ archived: true, archived_at: 9999, auto_archive_exempt: true },
);
expect(merged).toMatchObject({ archived: true, archived_at: 9999, auto_archive_exempt: true });
const kept = mergeLegacyMetadata(
{ archived: true, archived_at: 1 },
{ archived: false, archived_at: 9999 },
);
expect(kept).toMatchObject({ archived: true, archived_at: 1 });
});
it('fills wire_mtime only when state has none', () => {
expect(mergeLegacyMetadata({}, { wire_mtime: 1234.5 }).wire_mtime).toBe(1234.5);
expect(mergeLegacyMetadata({ wire_mtime: 1 }, { wire_mtime: 1234.5 }).wire_mtime).toBe(1);
expect(mergeLegacyMetadata({ wire_mtime: null }, { wire_mtime: 1234.5 }).wire_mtime).toBe(
1234.5,
);
});
it('fills title-generation counters only while at defaults', () => {
const merged = mergeLegacyMetadata({}, { title_generated: true, title_generate_attempts: 2 });
expect(merged).toMatchObject({ title_generated: true, title_generate_attempts: 2 });
const kept = mergeLegacyMetadata(
{ title_generated: false, title_generate_attempts: 1 },
{ title_generated: true, title_generate_attempts: 2 },
);
expect(kept).toMatchObject({ title_generated: true, title_generate_attempts: 1 });
});
});
|