import 'package:flutter_test/flutter_test.dart'; import 'package:cashumit/models/receipt_group.dart'; import 'package:cashumit/models/receipt_item.dart'; import 'package:cashumit/models/submission_task.dart'; void main() { ReceiptGroup buildGroup(String id, double price) { return ReceiptGroup( id: id, sourceAccountId: 'source_$id', sourceAccountName: 'Sumber $id', items: [ ReceiptItem(description: 'Item $id', quantity: 1, price: price), ], ); } test('amount menjumlahkan semua grup dan tip', () { final task = SubmissionTask( taskId: 't1', groups: [buildGroup('a', 10000), buildGroup('b', 25000)], tipAmount: 5000, tipSourceAccountId: 'tip_source', destinationAccountId: 'dest', destinationAccountName: 'Tujuan', transactionDate: DateTime(2026, 1, 1), ); expect(task.itemsTotal, 35000); expect(task.amount, 40000); expect(task.splitCount, 3); expect(task.hasTip, isTrue); }); test('tanpa tip hanya menghitung item', () { final task = SubmissionTask( taskId: 't2', groups: [buildGroup('a', 10000)], destinationAccountId: 'dest', destinationAccountName: 'Tujuan', transactionDate: DateTime(2026, 1, 1), ); expect(task.amount, 10000); expect(task.splitCount, 1); expect(task.hasTip, isFalse); expect(task.label, 'Struk'); }); test('label memakai nama customer bila ada', () { final task = SubmissionTask( taskId: 't3', groups: [buildGroup('a', 10000)], destinationAccountId: 'dest', destinationAccountName: 'Tujuan', transactionDate: DateTime(2026, 1, 1), customerName: 'NISFIA', ); expect(task.label, 'NISFIA'); }); }