mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-08-29 00:30:35 +02:00
What's new
- Reordered Settings Page. - Added "Click to Unblur" for posts. - Added Persistent Notification - Improved Grayscale Scheduling. and more.
This commit is contained in:
@@ -0,0 +1,66 @@
|
||||
// test/services/focusgram_router_test.dart
|
||||
//
|
||||
// Tests for FocusGramRouter — the lightweight cross-widget URL notifier.
|
||||
//
|
||||
// Run with: flutter test test/services/focusgram_router_test.dart
|
||||
|
||||
import 'package:flutter_test/flutter_test.dart';
|
||||
import 'package:focusgram/services/focusgram_router.dart';
|
||||
|
||||
void main() {
|
||||
// Reset between tests so state does not bleed across
|
||||
tearDown(() {
|
||||
FocusGramRouter.pendingUrl.value = null;
|
||||
});
|
||||
|
||||
group('FocusGramRouter.pendingUrl', () {
|
||||
test('initial value is null', () {
|
||||
expect(FocusGramRouter.pendingUrl.value, isNull);
|
||||
});
|
||||
|
||||
test('can be set to a URL string', () {
|
||||
FocusGramRouter.pendingUrl.value =
|
||||
'https://www.instagram.com/accounts/settings/';
|
||||
expect(
|
||||
FocusGramRouter.pendingUrl.value,
|
||||
'https://www.instagram.com/accounts/settings/',
|
||||
);
|
||||
});
|
||||
|
||||
test('can be cleared back to null', () {
|
||||
FocusGramRouter.pendingUrl.value = 'https://www.instagram.com/';
|
||||
FocusGramRouter.pendingUrl.value = null;
|
||||
expect(FocusGramRouter.pendingUrl.value, isNull);
|
||||
});
|
||||
|
||||
test('notifies listeners when value changes', () {
|
||||
bool notified = false;
|
||||
void listener() => notified = true;
|
||||
FocusGramRouter.pendingUrl.addListener(listener);
|
||||
|
||||
FocusGramRouter.pendingUrl.value = 'https://www.instagram.com/';
|
||||
|
||||
expect(notified, isTrue);
|
||||
FocusGramRouter.pendingUrl.removeListener(listener);
|
||||
});
|
||||
|
||||
test('does NOT notify when value is set to same value', () {
|
||||
FocusGramRouter.pendingUrl.value = 'https://x.com/';
|
||||
int callCount = 0;
|
||||
void listener() => callCount++;
|
||||
FocusGramRouter.pendingUrl.addListener(listener);
|
||||
|
||||
// Setting to the exact same value should not notify
|
||||
FocusGramRouter.pendingUrl.value = 'https://x.com/';
|
||||
expect(callCount, 0);
|
||||
|
||||
FocusGramRouter.pendingUrl.removeListener(listener);
|
||||
});
|
||||
|
||||
test('is a singleton — same instance across multiple accesses', () {
|
||||
final a = FocusGramRouter.pendingUrl;
|
||||
final b = FocusGramRouter.pendingUrl;
|
||||
expect(identical(a, b), isTrue);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user