Files
tilbudgivern/backend/__tests__/smartPackageDefaultsService.test.js

32 lines
1.1 KiB
JavaScript

const {
applyDefaultTaskTimes,
distributeTaskTime,
getCarpenterTaskWeight
} = require('../src/services/smartPackageDefaultsService');
describe('smartPackageDefaultsService', () => {
test('distributes the package time exactly across carpenter tasks', () => {
const result = distributeTaskTime([
{ name: 'Opmåling' },
{ name: 'Tilskæring' },
{ name: 'Montage' },
{ name: 'Slutkontrol' }
], 0.25, 'per_m2');
expect(result.reduce((sum, task) => sum + task.hours, 0)).toBeCloseTo(0.25, 5);
expect(result[2].hours).toBeGreaterThan(result[0].hours);
expect(result[0].hours).toBeGreaterThan(result[3].hours);
expect(result.every(task => task.timeUnit === 'per_sqm')).toBe(true);
});
test('keeps user-entered task times unchanged', () => {
const tasks = [{ name: 'Montage', hours: 2 }, { name: 'Kontrol', hours: 1 }];
expect(applyDefaultTaskTimes(tasks, 8, 'total')).toEqual(tasks);
});
test('weights main carpenter work above final control', () => {
expect(getCarpenterTaskWeight({ name: 'Montage af taglægter' }))
.toBeGreaterThan(getCarpenterTaskWeight({ name: 'Slutkontrol' }));
});
});