77 lines
2.4 KiB
Dart
77 lines
2.4 KiB
Dart
import 'package:flame_lua_runtime/runtime/diagnostics/runtime_diagnostics.dart';
|
|
import 'package:flame_lua_runtime/runtime/game/flame_lua_game.dart';
|
|
import 'package:flame_lua_runtime/runtime/models/game_diff.dart';
|
|
import 'package:flame_lua_runtime/runtime/models/runtime_event.dart';
|
|
import 'package:flame_lua_runtime/runtime/packages/game_package.dart';
|
|
import 'package:flame_lua_runtime/runtime/packages/game_package_manifest.dart';
|
|
import 'package:flame_lua_runtime/runtime/packages/game_package_repository.dart';
|
|
import 'package:flame_lua_runtime/runtime/scripting/runtime_script_services.dart';
|
|
import 'package:flame_lua_runtime/runtime/scripting/script_engine.dart';
|
|
import 'package:flutter_test/flutter_test.dart';
|
|
|
|
void main() {
|
|
group('FlameLuaGame diagnostics debug access', () {
|
|
test('exposes diagnostics entries, dump text and debug json', () {
|
|
final diagnostics = RuntimeDiagnostics()
|
|
..record(
|
|
type: RuntimeDiagnosticType.commandError,
|
|
message: 'command failed',
|
|
context: {'command': 'play_bgm'},
|
|
);
|
|
final game = FlameLuaGame(
|
|
scriptEngine: _FakeScriptEngine(),
|
|
packageRepository: _FakePackageRepository(),
|
|
gameId: 'ludo',
|
|
diagnostics: diagnostics,
|
|
);
|
|
|
|
expect(game.diagnosticEntries, hasLength(1));
|
|
expect(game.diagnosticsDumpText(), contains('command failed'));
|
|
expect(game.diagnosticsDebugJson()['count'], 1);
|
|
expect(game.resourcesDebugJson(), {'initialized': false});
|
|
});
|
|
});
|
|
}
|
|
|
|
class _FakeScriptEngine implements ScriptEngine {
|
|
@override
|
|
Future<void> loadPackage(
|
|
GamePackage package, {
|
|
RuntimeScriptServices services = const RuntimeScriptServices(),
|
|
}) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
@override
|
|
GameDiff dispatchEvent(RuntimeEvent event) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
@override
|
|
GameDiff init(Map<String, Object?> context) {
|
|
throw UnimplementedError();
|
|
}
|
|
|
|
@override
|
|
bool smokeTest(Map<String, Object?> context) {
|
|
throw UnimplementedError();
|
|
}
|
|
}
|
|
|
|
class _FakePackageRepository implements GamePackageRepository {
|
|
@override
|
|
Future<GamePackage> load(String gameId) async {
|
|
return GamePackage.asset(
|
|
rootPath: 'example/assets/games/$gameId',
|
|
manifest: GamePackageManifest(
|
|
gameId: gameId,
|
|
name: gameId,
|
|
version: 'test',
|
|
runtimeApiVersion: 1,
|
|
entry: 'scripts/main.lua',
|
|
assetsBase: 'assets',
|
|
),
|
|
);
|
|
}
|
|
}
|