pottery-diary/__tests__/lib/utils/conversions.test.ts

68 lines
1.9 KiB
TypeScript

import {
fahrenheitToCelsius,
celsiusToFahrenheit,
convertTemperature,
formatTemperature,
} from '../../../src/lib/utils/conversions';
describe('Temperature Conversions', () => {
describe('fahrenheitToCelsius', () => {
it('converts 32°F to 0°C', () => {
expect(fahrenheitToCelsius(32)).toBe(0);
});
it('converts 212°F to 100°C', () => {
expect(fahrenheitToCelsius(212)).toBe(100);
});
it('converts 2232°F (cone 6) to approximately 1222°C', () => {
const result = fahrenheitToCelsius(2232);
expect(Math.round(result)).toBe(1222);
});
});
describe('celsiusToFahrenheit', () => {
it('converts 0°C to 32°F', () => {
expect(celsiusToFahrenheit(0)).toBe(32);
});
it('converts 100°C to 212°F', () => {
expect(celsiusToFahrenheit(100)).toBe(212);
});
});
describe('convertTemperature', () => {
it('returns same temperature if units match', () => {
const temp = { value: 100, unit: 'F' as const };
const result = convertTemperature(temp, 'F');
expect(result).toEqual(temp);
});
it('converts from F to C', () => {
const temp = { value: 2232, unit: 'F' as const };
const result = convertTemperature(temp, 'C');
expect(result.value).toBe(1222);
expect(result.unit).toBe('C');
});
it('converts from C to F', () => {
const temp = { value: 1222, unit: 'C' as const };
const result = convertTemperature(temp, 'F');
expect(result.value).toBe(2232);
expect(result.unit).toBe('F');
});
});
describe('formatTemperature', () => {
it('formats Fahrenheit temperature', () => {
const temp = { value: 2232, unit: 'F' as const };
expect(formatTemperature(temp)).toBe('2232°F');
});
it('formats Celsius temperature', () => {
const temp = { value: 1222, unit: 'C' as const };
expect(formatTemperature(temp)).toBe('1222°C');
});
});
});