39 lines
1.4 KiB
TypeScript
39 lines
1.4 KiB
TypeScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
import { resolveTabularPreviewModel } from '../../src/app/main/mainChatPanel/ChatDataTablePreview';
|
|
|
|
test('resolveTabularPreviewModel parses object-array json into a table model', () => {
|
|
const model = resolveTabularPreviewModel(
|
|
{
|
|
label: 'table.json',
|
|
url: '/api/chat/resources/.codex_chat/chat-room/resource/reports/table.json',
|
|
kind: 'code',
|
|
},
|
|
JSON.stringify([
|
|
{ code: '005930', name: '삼성전자', changeRate: 2.5 },
|
|
{ code: '000660', name: 'SK하이닉스', changeRate: 1.8 },
|
|
]),
|
|
);
|
|
|
|
assert.ok(model);
|
|
assert.deepEqual(model.columns, ['code', 'name', 'changeRate']);
|
|
assert.equal(model.rowCount, 2);
|
|
assert.deepEqual(model.rows[0], ['005930', '삼성전자', '2.5']);
|
|
});
|
|
|
|
test('resolveTabularPreviewModel parses csv into a table model', () => {
|
|
const model = resolveTabularPreviewModel(
|
|
{
|
|
label: 'table.csv',
|
|
url: '/api/chat/resources/.codex_chat/chat-room/resource/reports/table.csv',
|
|
kind: 'document',
|
|
},
|
|
['code,name,reason', '005930,삼성전자,거래량 미달', '000660,SK하이닉스,등락률 미달'].join('\n'),
|
|
);
|
|
|
|
assert.ok(model);
|
|
assert.deepEqual(model.columns, ['code', 'name', 'reason']);
|
|
assert.equal(model.rowCount, 2);
|
|
assert.deepEqual(model.rows[1], ['000660', 'SK하이닉스', '등락률 미달']);
|
|
});
|