gijl/lv-storage / llama.cpp /tools /ui /tests /unit /formatters.test.ts
gijl's picture
download
raw
2.16 kB
import {
MS_PER_SECOND,
RELATIVE_TIME_MAX_DAYS,
SECONDS_PER_DAY,
SECONDS_PER_HOUR,
SECONDS_PER_MINUTE
} from '$lib/constants';
import { formatContextLength, formatParameters, formatRelativeTime } from '$lib/utils/formatters';
import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest';
describe('formatContextLength', () => {
it('shows a dash when no value is known', () => {
expect(formatContextLength([])).toBe('-');
});
it('prints the value with thousands separators', () => {
expect(formatContextLength([8192])).toBe('8,192 tokens');
});
it('pairs the configured context with the supported one', () => {
expect(formatContextLength([8192, 131072])).toBe('8,192 / 131,072 tokens');
});
});
describe('formatParameters', () => {
it('shortens large parameter counts', () => {
expect(formatParameters(35_000_000_000)).toBe('35B');
expect(formatParameters(3_000_000)).toBe('3.00M');
expect(formatParameters(512)).toBe('512');
});
});
describe('formatRelativeTime', () => {
const NOW = new Date('2026-06-15T12:00:00Z').getTime();
const ago = (seconds: number) => NOW - seconds * MS_PER_SECOND;
beforeEach(() => {
vi.useFakeTimers();
vi.setSystemTime(NOW);
});
afterEach(() => {
vi.useRealTimers();
});
it('says just now under a minute', () => {
expect(formatRelativeTime(ago(SECONDS_PER_MINUTE - 1))).toBe('just now');
});
it('counts minutes, hours and days with singular and plural units', () => {
expect(formatRelativeTime(ago(SECONDS_PER_MINUTE))).toBe('1 minute ago');
expect(formatRelativeTime(ago(37 * SECONDS_PER_MINUTE))).toBe('37 minutes ago');
expect(formatRelativeTime(ago(SECONDS_PER_HOUR))).toBe('1 hour ago');
expect(formatRelativeTime(ago(5 * SECONDS_PER_HOUR))).toBe('5 hours ago');
expect(formatRelativeTime(ago(SECONDS_PER_DAY))).toBe('1 day ago');
expect(formatRelativeTime(ago(3 * SECONDS_PER_DAY))).toBe('3 days ago');
});
it('falls back to a date once the age reaches the day limit', () => {
const timestamp = ago(RELATIVE_TIME_MAX_DAYS * SECONDS_PER_DAY);
expect(formatRelativeTime(timestamp)).toBe(new Date(timestamp).toLocaleDateString());
});
});

Xet Storage Details

Size:
2.16 kB
·
Xet hash:
3998a41c26c85ca2c5d427a1d7f3cd92b94eceb547583dd82c49844b73600050

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.