import 'package:flutter_test/flutter_test.dart'; import 'package:tane/security/secret_store.dart'; import 'package:tane/services/social_settings.dart'; /// In-memory [SecretStore] for tests. class FakeSecretStore implements SecretStore { final Map _data = {}; @override Future read(String key) async => _data[key]; @override Future write(String key, String value) async => _data[key] = value; } void main() { late SocialSettings settings; setUp(() => settings = SocialSettings(FakeSecretStore())); test('defaults: empty area, no relays, not configured', () async { expect(await settings.areaGeohash(), ''); expect(await settings.relayUrls(), isEmpty); expect(await settings.isConfigured, isFalse); }); test('stores and normalises the area geohash (trim + lowercase)', () async { await settings.setAreaGeohash(' SP3E9 '); expect(await settings.areaGeohash(), 'sp3e9'); }); test('stores relay urls, dropping blanks', () async { await settings.setRelayUrls([ 'wss://relay.comunes.org', ' ', 'wss://seeds.example.org', ]); expect(await settings.relayUrls(), ['wss://relay.comunes.org', 'wss://seeds.example.org']); }); test('is configured only with both an area and at least one relay', () async { await settings.setAreaGeohash('sp3e9'); expect(await settings.isConfigured, isFalse); await settings.setRelayUrls(['wss://relay.comunes.org']); expect(await settings.isConfigured, isTrue); }); }