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