push registration no longer depends on notification permission, reporting effective opt-in and os permission

This commit is contained in:
2026-09-26 23:38:24 +02:00
parent e6f74ca6fe
commit 2aed3d104c
6 changed files with 129 additions and 81 deletions
+33
View File
@@ -1,5 +1,6 @@
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:marianum_mobile/api/marianumconnect/queries/telemetry_heartbeat/telemetry_heartbeat.dart';
import 'package:marianum_mobile/push/push_registration.dart';
void main() {
@@ -37,4 +38,36 @@ void main() {
expect(AuthorizationStatus.values, hasLength(5));
});
});
group('PushRegistration.canDisplay', () {
test('only authorized and provisional show notifications', () {
expect(
AuthorizationStatus.values.where(PushRegistration.canDisplay),
unorderedEquals([
AuthorizationStatus.authorized,
AuthorizationStatus.provisional,
]),
);
});
});
group('osPermissionWireValue', () {
test('maps every status', () {
expect(osPermissionWireValue(AuthorizationStatus.authorized), 'granted');
expect(
osPermissionWireValue(AuthorizationStatus.provisional),
'provisional',
);
expect(osPermissionWireValue(AuthorizationStatus.denied), 'denied');
expect(
osPermissionWireValue(AuthorizationStatus.deniedPermanently),
'denied',
);
expect(
osPermissionWireValue(AuthorizationStatus.notDetermined),
'notDetermined',
);
expect(osPermissionWireValue(null), isNull);
});
});
}