import 'package:flame_lua_runtime/runtime/lifecycle/runtime_session.dart'; import 'package:flutter_test/flutter_test.dart'; void main() { group('RuntimeSession', () { test('moves through loading, active, disposing and disposed states', () { final session = RuntimeSession(gameId: 'game'); expect(session.state, RuntimeSessionState.created); expect(session.acceptsWork, isTrue); expect(session.isActive, isFalse); session.beginLoading(); expect(session.state, RuntimeSessionState.loading); expect(session.acceptsWorkFor(session.id), isTrue); expect(session.accepts(session.id), isFalse); session.activate(); expect(session.state, RuntimeSessionState.active); expect(session.accepts(session.id), isTrue); session.beginDisposing(); expect(session.state, RuntimeSessionState.disposing); expect(session.acceptsWork, isFalse); expect(session.accepts(session.id), isFalse); session.dispose(); expect(session.state, RuntimeSessionState.disposed); expect(session.acceptsWork, isFalse); }); test('rejects invalid transitions', () { final session = RuntimeSession(gameId: 'game')..activate(); expect(session.beginLoading, throwsA(isA())); }); }); }