Vitest birim testleri
Tablo odaklı Vitest testleri üretir.

Prompt Metni
Aşağıdaki saf fonksiyon için Vitest testleri yaz. Normal durumları tablo odaklı test et; boş metin ve geçersiz uzunluk sınırlarını ayrıca kapsa. Uygulama detayını değil çıktıyı test et.
export function truncate(value: string, maxLength: number): string {
if (maxLength < 1) throw new RangeError('maxLength must be positive')
return value.length <= maxLength
? value
: value.slice(0, Math.max(0, maxLength - 1)) + '…'
}Prompt Sonucu
import { describe, expect, it } from 'vitest'
import { truncate } from './truncate'
describe('truncate', () => {
it.each([
{ value: 'AI', maxLength: 5, expected: 'AI' },
{ value: 'Yapay zeka', maxLength: 6, expected: 'Yapay…' },
{ value: 'abc', maxLength: 3, expected: 'abc' },
{ value: 'abc', maxLength: 1, expected: '…' },
])(
'$value metnini $maxLength karaktere sınırlar',
({ value, maxLength, expected }) => {
expect(truncate(value, maxLength)).toBe(expected)
}
)
it('boş metni değiştirmez', () => {
expect(truncate('', 4)).toBe('')
})
it.each([0, -1, -10])(
'geçersiz sınır için RangeError üretir: %s',
(maxLength) => {
expect(() => truncate('test', maxLength)).toThrow(RangeError)
}
)
})