Merge branch 'refactor2'

This commit is contained in:
@kirill.komarov
2026-05-13 22:40:45 +05:00
parent c6b542bd95
commit 8165f75a78
17 changed files with 4122 additions and 15 deletions
@@ -0,0 +1,22 @@
import { describe, expect, it } from 'vitest'
import { formatPriceRub } from '../format-price'
describe('formatPriceRub', () => {
it('formats cents to rubles', () => {
const result = formatPriceRub(10000)
expect(result).toContain('100')
expect(result).toContain('₽')
})
it('formats zero', () => {
const result = formatPriceRub(0)
expect(result).toContain('0')
expect(result).toContain('₽')
})
it('rounds to integer rubles', () => {
const result = formatPriceRub(10050)
expect(result).toContain('101')
expect(result).toContain('₽')
})
})
@@ -0,0 +1,20 @@
import { describe, expect, it } from 'vitest'
import { getErrorMessage } from '../get-error-message'
describe('getErrorMessage', () => {
it('returns error message for Error instance', () => {
expect(getErrorMessage(new Error('test error'))).toBe('test error')
})
it('returns fallback for non-Error', () => {
expect(getErrorMessage('string error')).toBe('Произошла ошибка')
})
it('returns custom fallback when provided', () => {
expect(getErrorMessage(null, 'custom')).toBe('custom')
})
it('returns fallback for Error with empty message', () => {
expect(getErrorMessage(new Error(''), 'empty')).toBe('empty')
})
})
@@ -0,0 +1,33 @@
import { describe, expect, it } from 'vitest'
import { groupOrdersByStatus } from '../group-orders-by-status'
const STATUSES = ['PENDING', 'PAID', 'DONE'] as const
describe('groupOrdersByStatus', () => {
it('groups and sorts orders by status', () => {
const orders = [
{ status: 'PAID', createdAt: '2024-01-02T10:00:00Z' },
{ status: 'PENDING', createdAt: '2024-01-01T10:00:00Z' },
{ status: 'PAID', createdAt: '2024-01-03T10:00:00Z' },
]
const result = groupOrdersByStatus(orders, STATUSES)
expect(result).toHaveLength(2)
expect(result[0].status).toBe('PENDING')
expect(result[1].status).toBe('PAID')
expect(result[1].items).toHaveLength(2)
expect(result[1].items[0].createdAt).toBe('2024-01-03T10:00:00Z')
})
it('returns empty array for no matching orders', () => {
const result = groupOrdersByStatus([], STATUSES)
expect(result).toHaveLength(0)
})
it('ignores unknown statuses', () => {
const orders = [{ status: 'UNKNOWN', createdAt: '2024-01-01T10:00:00Z' }]
const result = groupOrdersByStatus(orders, STATUSES)
expect(result).toHaveLength(0)
})
})