Files
ai-code-app/tests/layoutDraw/layoutDrawStorage.test.ts

47 lines
1.3 KiB
TypeScript

import assert from 'node:assert/strict';
import test from 'node:test';
import {
normalizeSavedLayoutDrawShapes,
serializeSavedLayoutDrawShapes,
} from '../../src/features/layout/draw/layoutDrawStorageShapes.ts';
import type { DrawShape } from '../../src/features/layout/draw/layoutDrawTypes.ts';
function createShapes(): DrawShape[] {
return [
{
id: 'line-1',
type: 'line',
x1: 0,
y1: 0,
x2: 0,
y2: 120,
orientation: 'vertical',
label: '',
},
{
id: 'region-1',
type: 'region',
regionKey: '0:0',
label: '거실',
fillColor: '#dbeafe',
},
];
}
test('serializes saved draw shapes into a JSON string for jsonb insert payloads', () => {
const serialized = serializeSavedLayoutDrawShapes(createShapes());
assert.equal(typeof serialized, 'string');
assert.deepEqual(JSON.parse(serialized), createShapes());
});
test('normalizes stringified jsonb array values back into shape arrays', () => {
const normalized = normalizeSavedLayoutDrawShapes(JSON.stringify(createShapes()));
assert.deepEqual(normalized, createShapes());
});
test('falls back to an empty array for malformed saved draw shapes', () => {
assert.deepEqual(normalizeSavedLayoutDrawShapes('{bad json'), []);
});