feat: add admin page

This commit is contained in:
2026-08-07 03:09:59 +02:00
parent 2c734493cf
commit 1dd7e69aa8
19 changed files with 891 additions and 65 deletions
+52
View File
@@ -0,0 +1,52 @@
import 'package:flutter_secure_storage/flutter_secure_storage.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:kooltab2/services/admin_pin_service.dart';
import 'package:mocktail/mocktail.dart';
class MockFlutterSecureStorage extends Mock implements FlutterSecureStorage {}
void main() {
late AdminPinService service;
late MockFlutterSecureStorage mockStorage;
setUp(() {
mockStorage = MockFlutterSecureStorage();
service = AdminPinService(storage: mockStorage);
});
test('uses separate secure-storage keys for the admin PIN', () async {
when(
() => mockStorage.write(
key: any(named: 'key'),
value: any(named: 'value'),
),
).thenAnswer((_) async {});
await service.setPin('1234');
verify(
() => mockStorage.write(
key: 'admin_pin_salt',
value: any(named: 'value'),
),
).called(1);
verify(
() => mockStorage.write(
key: 'admin_pin_hash',
value: any(named: 'value'),
),
).called(1);
verifyNever(
() => mockStorage.write(
key: 'pin_salt',
value: any(named: 'value'),
),
);
verifyNever(
() => mockStorage.write(
key: 'pin_hash',
value: any(named: 'value'),
),
);
});
}