cashumit/test/submission_task_test.dart

63 lines
1.7 KiB
Dart
Raw Permalink Normal View History

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');
});
}