Merge branch 'feature/switch-ia'

This commit is contained in:
qlionbleusam
2026-09-09 14:35:00 +02:00
5 changed files with 342 additions and 145 deletions
@@ -0,0 +1,62 @@
import 'package:flutter_test/flutter_test.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:bully/services/wallet_identity_service.dart';
void main() {
TestWidgetsFlutterBinding.ensureInitialized();
setUp(() => SharedPreferences.setMockInitialValues({}));
group('WalletIdentityService - consentement IA', () {
test('rien n\'est accepté ni activé à la première utilisation', () async {
final service = WalletIdentityService();
expect(await service.isUploadEnabled(), isFalse);
expect(await service.hasAcceptedAiTerms(), isFalse);
});
test('activer l\'option des Paramètres vaut acceptation des règles',
() async {
final service = WalletIdentityService();
await service.setUploadEnabled(true);
expect(await service.isUploadEnabled(), isTrue);
expect(await service.hasAcceptedAiTerms(), isTrue);
});
test('désactiver l\'option ne fait pas oublier les règles acceptées',
() async {
final service = WalletIdentityService();
await service.setUploadEnabled(true);
await service.setUploadEnabled(false);
expect(await service.isUploadEnabled(), isFalse);
// Le switch de fin de session ne redemandera donc pas l'avertissement.
expect(await service.hasAcceptedAiTerms(), isTrue);
});
test('accepter depuis le switch de fin de session n\'active pas l\'option '
'globale', () async {
final service = WalletIdentityService();
await service.setAiTermsAccepted(true);
expect(await service.hasAcceptedAiTerms(), isTrue);
expect(await service.isUploadEnabled(), isFalse);
});
test('un compte banni ne peut plus activer l\'envoi', () async {
final service = WalletIdentityService();
await service.setBanned(true, reason: 'Cibles non conformes');
await service.setUploadEnabled(true);
expect(await service.isBanned(), isTrue);
expect(await service.isUploadEnabled(), isFalse);
expect(await service.hasAcceptedAiTerms(), isFalse);
});
});
}