Handle pokes outside chat tabs
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:shared_preferences/shared_preferences.dart';
|
||||
|
||||
import 'package:chanora_flutter/services/ui_preferences_service.dart';
|
||||
|
||||
void main() {
|
||||
late UiPreferencesService service;
|
||||
|
||||
setUp(() {
|
||||
SharedPreferences.setMockInitialValues({});
|
||||
service = const UiPreferencesService();
|
||||
});
|
||||
|
||||
test('loads empty settings when preferences are unset', () async {
|
||||
final settings = await service.loadSettings();
|
||||
|
||||
expect(settings.host, isEmpty);
|
||||
expect(settings.nickname, isEmpty);
|
||||
expect(settings.showPokeDialogs, isTrue);
|
||||
});
|
||||
|
||||
test('saves and loads host and nickname independently', () async {
|
||||
await service.saveSettings(host: 'example.com');
|
||||
var settings = await service.loadSettings();
|
||||
|
||||
expect(settings.host, 'example.com');
|
||||
expect(settings.nickname, isEmpty);
|
||||
|
||||
await service.saveSettings(nickname: 'Chanora');
|
||||
settings = await service.loadSettings();
|
||||
|
||||
expect(settings.host, 'example.com');
|
||||
expect(settings.nickname, 'Chanora');
|
||||
});
|
||||
|
||||
test('saves poke dialog preference independently', () async {
|
||||
await service.saveSettings(showPokeDialogs: false);
|
||||
var settings = await service.loadSettings();
|
||||
|
||||
expect(settings.showPokeDialogs, isFalse);
|
||||
expect(settings.host, isEmpty);
|
||||
expect(settings.nickname, isEmpty);
|
||||
|
||||
await service.saveSettings(host: 'example.com');
|
||||
settings = await service.loadSettings();
|
||||
|
||||
expect(settings.showPokeDialogs, isFalse);
|
||||
expect(settings.host, 'example.com');
|
||||
});
|
||||
|
||||
test('tracks permission explanation flag', () async {
|
||||
expect(await service.hasExplainedPermissions(), isFalse);
|
||||
|
||||
await service.markPermissionsExplained();
|
||||
|
||||
expect(await service.hasExplainedPermissions(), isTrue);
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user