import { describe, it, expect } from 'vitest' import { getConversionFactor, calculateTotals } from '@/units' describe('units', () => { it('returns conversion factors for aliases and base units', () => { expect(getConversionFactor('kg')).toEqual({ unit: 'kg', factor: 1 }) expect(getConversionFactor('g')).toEqual({ unit: 'kg', factor: 1000 }) expect(getConversionFactor('kgs')).toEqual({ unit: 'kg', factor: 1 }) expect(getConversionFactor('litre')).toEqual({ unit: 'litres', factor: 1 }) expect(getConversionFactor('ml')).toEqual({ unit: 'litres', factor: 1000 }) }) it('calculates totals grouped by base units', () => { const totals = calculateTotals([ { quantity: 500, unit: 'g' }, { quantity: 0.5, unit: 'kg' }, { quantity: 250, unit: 'ml' }, { quantity: 0.75, unit: 'litre' }, ]) // Expect kg total = 0.5 (from g) + 0.5 (from kg) = 1 const kgTotal = totals.find((t) => t.unit === 'kg') expect(kgTotal.quantity).toBeCloseTo(1) // Expect litres total = 0.25 (from ml) + 0.75 (from litre) = 1 const lTotal = totals.find((t) => t.unit === 'litres') expect(lTotal.quantity).toBeCloseTo(1) }) })