import { describe, expect, it } from 'vitest';
import { SAVE_VERSION, normalizeSave, type SaveData } from '../saveData';

/** Сейв заданной версии с минимальным содержимым. */
function saveOf(version: number): SaveData {
    return {
        version,
        area: 'meadows',
        pos: { x: 1, y: 2 },
        state: { version: 2, flags: ['evening'], vars: {} },
        items: { flower: 1 },
        savedAt: 0
    } as SaveData;
}

describe('normalizeSave', () => {
    it('v3 (без clock): время дефолтится в старт 8:00, версия поднимается', () => {
        const out = normalizeSave(saveOf(3));
        expect(out.version).toBe(SAVE_VERSION);
        expect(out.clock).toEqual({ minutes: 480 });
        expect(out.items).toEqual({ flower: 1 });
    });

    it('v4: проходит без изменений (тот же объект)', () => {
        const s = saveOf(SAVE_VERSION);
        s.clock = { minutes: 1230 };
        expect(normalizeSave(s)).toBe(s);
    });
});