OTMovilGasfiter/test/work_order_model_test.dart
2026-08-02 15:50:25 -04:00

59 lines
1.8 KiB
Dart

import 'package:flutter_test/flutter_test.dart';
import 'package:ot_movil/models/work_order.dart';
void main() {
test('calcula la evidencia total de una orden', () {
final now = DateTime(2026, 7, 24);
final order = WorkOrder(
id: 'ot-1',
title: 'Mantención preventiva',
createdAt: now,
updatedAt: now,
status: WorkOrderStatus.completed,
laborCost: 25000,
details: const WorkOrderDetails(
client: 'María Soto',
phone: '+56 9 1234 5678',
address: 'Los Aromos 120',
),
tasks: const [
WorkTask(
id: 'task-1',
title: 'Lubricar equipo',
observation: 'Equipo lubricado.',
position: 0,
parts: [
TaskPart(id: 'part-1', name: 'Válvula', price: 7500),
TaskPart(id: 'part-2', name: 'Flexible', price: 3500),
],
photos: [
TaskPhoto(
id: 'before-1',
path: '/before.jpg',
kind: PhotoKind.before,
),
TaskPhoto(id: 'after-1', path: '/after.jpg', kind: PhotoKind.after),
],
),
],
);
expect(order.isCompleted, isTrue);
expect(order.totalPhotos, 2);
expect(order.tasks.single.partsTotal, 11000);
expect(order.totalPartsCost, 11000);
expect(order.laborCost, 25000);
expect(order.totalCost, 36000);
expect(order.copyWith(laborCost: 30000).totalCost, 41000);
expect(order.details.isComplete, isTrue);
expect(order.tasks.single.beforePhotos, hasLength(1));
expect(order.tasks.single.afterPhotos, hasLength(1));
});
test(
'un estado desconocido de base de datos se interpreta como borrador',
() {
expect(WorkOrderStatus.fromDatabase('desconocido'), WorkOrderStatus.open);
},
);
}