kt-template-online-api/test/qqbot/plugins/bangDream/card/card-stat.layout.spec.ts

66 lines
1.5 KiB
TypeScript

import {
BANGDREAM_STAT_LIST_SPEC,
createStatLineText,
getStatLineBarLayout,
getStatLineBarWidth,
} from '@/qqbot/plugins/bangDream/card/card-stat.layout';
describe('BangDream stat list spec', () => {
it('keeps the historical stat list spacer stable', () => {
expect(BANGDREAM_STAT_LIST_SPEC.spacer).toEqual({
height: 5,
width: 1,
});
});
it('keeps the historical stat line canvas, text and bar layout stable', () => {
expect(BANGDREAM_STAT_LIST_SPEC.line.canvas).toEqual({
height: 70,
width: 800,
});
expect(BANGDREAM_STAT_LIST_SPEC.line.text).toEqual({
lineHeight: 30,
maxWidth: 800,
textSize: 30,
x: 20,
y: 0,
});
expect(BANGDREAM_STAT_LIST_SPEC.line.bar).toEqual({
height: 30,
radius: 15,
strokeWidth: 0,
widthScale: 2,
x: 20,
y: 35,
});
});
it('formats stat line text with optional limit break bonus', () => {
expect(
createStatLineText({
label: '演出',
value: 10654.9,
}),
).toBe('演出: 10654');
expect(
createStatLineText({
label: '演出',
limitBreakValue: 800,
value: 10654.9,
}),
).toBe('演出: 10654 + (3200)');
});
it('computes the doubled historical stat bar width and layout', () => {
expect(getStatLineBarWidth(100, 400)).toBe(400);
expect(getStatLineBarLayout(100, 400)).toEqual({
height: 30,
radius: 15,
strokeWidth: 0,
width: 400,
x: 20,
y: 35,
});
});
});