mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-07-02 09:35:31 +02:00
77 lines
2.0 KiB
Dart
77 lines
2.0 KiB
Dart
import 'package:flutter_test/flutter_test.dart';
|
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'package:focusgram/services/session_manager.dart';
|
|
|
|
void main() {
|
|
TestWidgetsFlutterBinding.ensureInitialized();
|
|
|
|
setUp(() {
|
|
SharedPreferences.setMockInitialValues({});
|
|
});
|
|
|
|
group('SessionManager — Extension flow', () {
|
|
test('canExtendAppSession is true when session just ended', () async {
|
|
final sm = SessionManager();
|
|
await sm.init();
|
|
|
|
// Start an app session
|
|
sm.startAppSession(60);
|
|
expect(sm.isSessionActive, isTrue);
|
|
|
|
// End it
|
|
sm.endAppSession();
|
|
expect(sm.isAppSessionExpired, isTrue);
|
|
expect(sm.canExtendAppSession, isTrue);
|
|
});
|
|
|
|
test('extendAppSession sets canExtendAppSession to false', () async {
|
|
final sm = SessionManager();
|
|
await sm.init();
|
|
|
|
sm.startAppSession(60);
|
|
sm.endAppSession();
|
|
expect(sm.canExtendAppSession, isTrue);
|
|
|
|
sm.extendAppSession();
|
|
expect(sm.canExtendAppSession, isFalse);
|
|
expect(sm.isSessionActive, isTrue);
|
|
});
|
|
|
|
test(
|
|
'canExtendAppSession is false after re-ending an extended session',
|
|
() async {
|
|
final sm = SessionManager();
|
|
await sm.init();
|
|
|
|
sm.startAppSession(60);
|
|
sm.endAppSession();
|
|
sm.extendAppSession();
|
|
sm.endAppSession();
|
|
|
|
expect(sm.canExtendAppSession, isFalse);
|
|
},
|
|
);
|
|
});
|
|
|
|
group('SessionManager — App session lifecycle', () {
|
|
test('startAppSession sets isSessionActive', () async {
|
|
final sm = SessionManager();
|
|
await sm.init();
|
|
|
|
sm.startAppSession(30);
|
|
expect(sm.isSessionActive, isTrue);
|
|
});
|
|
|
|
test('endAppSession clears session and sets expired', () async {
|
|
final sm = SessionManager();
|
|
await sm.init();
|
|
|
|
sm.startAppSession(30);
|
|
sm.endAppSession();
|
|
|
|
expect(sm.isSessionActive, isFalse);
|
|
expect(sm.isAppSessionExpired, isTrue);
|
|
});
|
|
});
|
|
}
|