42 lines
1.2 KiB
JavaScript
42 lines
1.2 KiB
JavaScript
// The Lucia project.
|
|
// Copyright 2026-2026 DSP, inc. All rights reserved.
|
|
// Authors:
|
|
// imacat.yang@dsp.im (imacat), 2026/03/05
|
|
|
|
import { describe, it, expect } from 'vitest';
|
|
import shortScaleNumber from '@/module/shortScaleNumber.js';
|
|
|
|
describe('shortScaleNumber', () => {
|
|
it('returns small numbers without abbreviation', () => {
|
|
expect(shortScaleNumber(1).trim()).toBe('1');
|
|
expect(shortScaleNumber(999).trim()).toBe('999');
|
|
});
|
|
|
|
it('abbreviates thousands as k', () => {
|
|
expect(shortScaleNumber(1000).trim()).toBe('1k');
|
|
expect(shortScaleNumber(1500).trim()).toBe('1.5k');
|
|
});
|
|
|
|
it('abbreviates millions as m', () => {
|
|
expect(shortScaleNumber(1000000).trim()).toBe('1m');
|
|
});
|
|
|
|
it('abbreviates billions as b', () => {
|
|
expect(shortScaleNumber(1000000000).trim()).toBe('1b');
|
|
});
|
|
|
|
it('abbreviates trillions as t', () => {
|
|
expect(shortScaleNumber(1000000000000).trim())
|
|
.toBe('1t');
|
|
});
|
|
|
|
it('rounds up using Math.ceil', () => {
|
|
// 1234 -> 1.234k -> ceil(12.34)/10 = 1.3k
|
|
expect(shortScaleNumber(1234).trim()).toBe('1.3k');
|
|
});
|
|
|
|
it('handles zero', () => {
|
|
expect(shortScaleNumber(0).trim()).toBe('0');
|
|
});
|
|
});
|