import { describe, it, expect } from 'vitest';
import { revealText } from '../reveal';
describe('revealText', () => {
it('в начале не показано ничего', () => {
expect(revealText('привет', 0, 10)).toEqual({ shown: 0, done: false });
});
it('печатает пропорционально времени', () => {
// 20 cps: 250мс → 5 символов
expect(revealText('привет мир', 250, 20)).toEqual({ shown: 5, done: false });
expect(revealText('привет мир', 550, 20)).toEqual({ shown: 10, done: true });
});
it('перелистывание назад невозможно: показ не больше длины', () => {
expect(revealText('ok', 10000, 5).shown).toBe(2);
});
it('cps <= 0 — весь текст сразу', () => {
expect(revealText('привет', 0, 0)).toEqual({ shown: 6, done: true });
expect(revealText('привет', 0, -5)).toEqual({ shown: 6, done: true });
});
it('пустой текст — сразу готов', () => {
expect(revealText('', 0, 10)).toEqual({ shown: 0, done: true });
});
});