86 lines
2.7 KiB
Dart
86 lines
2.7 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:cashumit/services/esc_pos_print_service.dart';
|
|
import 'package:cashumit/models/receipt_item.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
|
|
void main() {
|
|
group('EscPosPrintService Unit Tests', () {
|
|
setUp(() async {
|
|
// Inisialisasi shared preferences untuk testing
|
|
SharedPreferences.setMockInitialValues({});
|
|
});
|
|
|
|
test('StoreConfig fromSharedPreferences should return default values',
|
|
() async {
|
|
final storeConfig = await StoreConfig.fromSharedPreferences();
|
|
|
|
expect(storeConfig.name, 'TOKO SEMBAKO MURAH');
|
|
expect(storeConfig.address, 'Jl. Merdeka No. 123');
|
|
expect(storeConfig.adminName, 'Budi Santoso');
|
|
expect(storeConfig.adminPhone, '08123456789');
|
|
});
|
|
|
|
test('PaymentInfo should handle default values correctly', () {
|
|
final paymentInfo = PaymentInfo();
|
|
|
|
expect(paymentInfo.paymentAmount, 0.0);
|
|
expect(paymentInfo.isTip, false);
|
|
});
|
|
|
|
test('PaymentInfo should handle custom values correctly', () {
|
|
final paymentInfo = PaymentInfo(
|
|
paymentAmount: 500.0,
|
|
isTip: true,
|
|
);
|
|
|
|
expect(paymentInfo.paymentAmount, 500.0);
|
|
expect(paymentInfo.isTip, true);
|
|
});
|
|
|
|
test('StoreConfig should handle custom values correctly', () async {
|
|
SharedPreferences.setMockInitialValues({
|
|
'store_name': 'TOKO BARU',
|
|
'store_address': 'Jl. Sudirman No. 1',
|
|
'admin_name': 'Admin Baru',
|
|
'admin_phone': '081234567890',
|
|
'store_disclaimer_text': 'Disclaimer baru',
|
|
'thank_you_text': 'Terima kasih baru',
|
|
'pantun_text': 'Pantun baru',
|
|
});
|
|
|
|
final storeConfig = await StoreConfig.fromSharedPreferences();
|
|
|
|
expect(storeConfig.name, 'TOKO BARU');
|
|
expect(storeConfig.address, 'Jl. Sudirman No. 1');
|
|
expect(storeConfig.adminName, 'Admin Baru');
|
|
expect(storeConfig.adminPhone, '081234567890');
|
|
expect(storeConfig.disclaimer, 'Disclaimer baru');
|
|
expect(storeConfig.thankYouText, 'Terima kasih baru');
|
|
expect(storeConfig.pantunText, 'Pantun baru');
|
|
});
|
|
|
|
test('ReceiptItem total calculation should be correct', () {
|
|
final item = ReceiptItem(
|
|
description: 'Test Item',
|
|
quantity: 3,
|
|
price: 15000.0,
|
|
);
|
|
|
|
expect(item.total, 45000.0);
|
|
expect(item.description, 'Test Item');
|
|
expect(item.quantity, 3);
|
|
expect(item.price, 15000.0);
|
|
});
|
|
|
|
test('PaymentInfo null handling should work', () {
|
|
final paymentInfo = PaymentInfo(
|
|
paymentAmount: 75000.0,
|
|
isTip: false,
|
|
);
|
|
|
|
expect(paymentInfo.paymentAmount, 75000.0);
|
|
expect(paymentInfo.isTip, false);
|
|
});
|
|
});
|
|
}
|