mirror of
https://github.com/Ujwal223/FocusGram.git
synced 2026-07-09 12:47:49 +02:00
Feature Pack with bug fixes for V2
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
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);
|
||||
});
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user