32 lines
1.2 KiB
TypeScript
32 lines
1.2 KiB
TypeScript
import { describe, it, expect } from 'vitest';
|
|
import { pointDirty, templateDirty, DEFAULT_FLIGHT_PARAMETERS } from '$domain';
|
|
import type { FlightParameters, SavedPoint } from '$domain';
|
|
|
|
const point: SavedPoint = { id: 1, name: 'p', lat: 62.5, lon: 129.5, alt: 100 };
|
|
const paramsAt = (lat: number, lon: number, alt: number): FlightParameters => ({
|
|
...DEFAULT_FLIGHT_PARAMETERS,
|
|
launch_latitude: lat,
|
|
launch_longitude: lon,
|
|
launch_altitude: alt
|
|
});
|
|
|
|
describe('pointDirty', () => {
|
|
it('is clean when coordinates match the saved point', () => {
|
|
expect(pointDirty(paramsAt(62.5, 129.5, 100), point)).toBe(false);
|
|
});
|
|
it('is dirty when any coordinate diverges', () => {
|
|
expect(pointDirty(paramsAt(62.5001, 129.5, 100), point)).toBe(true);
|
|
expect(pointDirty(paramsAt(62.5, 129.5, 101), point)).toBe(true);
|
|
});
|
|
});
|
|
|
|
describe('templateDirty', () => {
|
|
it('is clean against an identical copy', () => {
|
|
const tpl = { ...DEFAULT_FLIGHT_PARAMETERS };
|
|
expect(templateDirty({ ...DEFAULT_FLIGHT_PARAMETERS }, tpl)).toBe(false);
|
|
});
|
|
it('is dirty when a parameter changes', () => {
|
|
const tpl = { ...DEFAULT_FLIGHT_PARAMETERS };
|
|
expect(templateDirty({ ...DEFAULT_FLIGHT_PARAMETERS, ascent_rate: 7 }, tpl)).toBe(true);
|
|
});
|
|
});
|