Files
wordcloud-board/src/lib/__tests__/wordcloudImport.test.ts
T
broccoli 02f5bf14ba
Build, Push and Deploy / build (push) Failing after 1s
Build, Push and Deploy / deploy (push) Skipped
Configure board deployment and backend proxy
2026-09-13 16:09:59 +08:00

65 lines
1.5 KiB
TypeScript

import { mapImportedWordLocations } from '../wordcloudImport';
import type { ImportedWordLocationResult } from '../wordcloudImport';
const result: ImportedWordLocationResult = {
job_id: 'job-1',
query: '',
mode: 'exact',
total: 2,
canvas_width: 1000,
canvas_height: 2000,
matches: [
{
id: 1,
name: '王小明',
x: 100,
y: 200,
font_size: 100,
color: '#000000',
orientation: 'horizontal',
box_x: 100,
box_y: 200,
box_width: 100,
box_height: 50,
},
{
id: 2,
name: '李欣',
x: 700,
y: 1200,
font_size: 25,
color: '#000000',
orientation: 'vertical',
box_x: 700,
box_y: 1200,
box_width: 60,
box_height: 200,
},
],
};
describe('imported word locations', () => {
it('maps database pixels to responsive percentage coordinates', () => {
const words = mapImportedWordLocations(result, {
jobId: 'job-1',
eyebrow: '',
title: '',
subtitle: '',
});
expect(words).toHaveLength(2);
expect(words[0].x).toBeCloseTo(15);
expect(words[0].y).toBeCloseTo(11.25);
expect(words[0].fontSize).toBe(100);
expect(words[0]).toMatchObject({
sourceBox: { width: 100, height: 50 },
});
expect(words[0].tier).toBe(4);
expect(words[1].x).toBeCloseTo(73);
expect(words[1].y).toBeCloseTo(65);
expect(words[1].fontSize).toBe(25);
expect(words[1].tier).toBe(1);
expect(words[1].rotation).toBe(90);
});
});