first commit
CI / lint-and-test (push) Canceled after 0s

This commit is contained in:
Alberto-Audrix committed 2026-07-28 08:55:05 +07:00
commit 32a36cceff
444 files changed
+67186

No files matched your search

+82
View File
@@ -0,0 +1,82 @@
import { describe, expect, it } from 'vitest';
import { calculateDailyWeightGain, processDailyWeightData } from '../utils/scaleDataProcessor.ts';
import { ScalePredictionRangeResponse } from '../types.ts';
describe('scaleDataProcessor', () => {
it('derives day labels from the cycle date and skips points beyond totalDays', () => {
const cycleStartDate = new Date('2026-05-22T00:00:00');
const scaleData: ScalePredictionRangeResponse = {
success: true,
data: [
{
date: '2026-05-22',
items: [
{
id: 'p1',
cage_name: 'Kandang A',
age: 1,
total_weight_prediction: 0,
total_weight_actual: 500,
avg_weight_prediction: 0,
avg_weight_actual: 50,
chicken_count: 10,
captured_at: '2026-05-22T00:00:00Z',
image_url: '',
device: 'dev-1',
},
],
},
{
date: '2026-05-23',
items: [
{
id: 'p2',
cage_name: 'Kandang A',
age: 99,
total_weight_prediction: 0,
total_weight_actual: 600,
avg_weight_prediction: 0,
avg_weight_actual: 60,
chicken_count: 10,
captured_at: '2026-05-23T00:00:00Z',
image_url: '',
device: 'dev-1',
},
],
},
{
date: '2026-07-11',
items: [
{
id: 'p3',
cage_name: 'Kandang A',
age: 51,
total_weight_prediction: 0,
total_weight_actual: 1200,
avg_weight_prediction: 0,
avg_weight_actual: 120,
chicken_count: 10,
captured_at: '2026-07-11T00:00:00Z',
image_url: '',
device: 'dev-1',
},
],
},
],
};
const dailyWeight = processDailyWeightData(scaleData, cycleStartDate, 42);
expect(dailyWeight).toHaveLength(2);
expect(dailyWeight.map((point) => point.day)).toEqual([1, 2]);
expect(dailyWeight.find((point) => point.day === 2)?.date).toBe('2026-05-23');
const dailyGain = calculateDailyWeightGain(dailyWeight);
expect(dailyGain).toHaveLength(1);
expect(dailyGain[0]).toMatchObject({
day: 2,
gain: 10,
date: '2026-05-23',
});
});
});