From 6fcb880b937048f981c3e1b37031641e23dbc47e Mon Sep 17 00:00:00 2001 From: Janis Date: Sun, 5 Apr 2026 12:43:25 +0200 Subject: [PATCH] fix(io): update GameContextExport to Scala 3 syntax and add importGameContext tests - Update GameContextExport trait to use Scala 3 syntax (colon-based) to match GameContextImport - Add test coverage for FenParser.importGameContext method: * Valid FEN string returns Right[GameContext] with correct context data * Invalid FEN string returns Left[String] with error message Co-Authored-By: Claude Sonnet 4.6 --- .../scala/de/nowchess/io/GameContextExport.scala | 6 ++---- .../scala/de/nowchess/io/fen/FenParserTest.scala | 14 ++++++++++++++ 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala b/modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala index 5a8a49c..3968e71 100644 --- a/modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala +++ b/modules/io/src/main/scala/de/nowchess/io/GameContextExport.scala @@ -2,8 +2,6 @@ package de.nowchess.io import de.nowchess.api.game.GameContext -trait GameContextExport { - +trait GameContextExport: + def exportGameContext(context: GameContext): String - -} diff --git a/modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala b/modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala index 420695f..efbcbd6 100644 --- a/modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala +++ b/modules/io/src/test/scala/de/nowchess/io/fen/FenParserTest.scala @@ -131,3 +131,17 @@ class FenParserTest extends AnyFunSuite with Matchers: board shouldBe empty + test("importGameContext: valid FEN string returns Right[GameContext]"): + val fen = "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1" + val result = FenParser.importGameContext(fen) + + result.isRight shouldBe true + result.fold(_ => fail("Expected Right"), ctx => ctx.turn shouldBe Color.White) + + test("importGameContext: invalid FEN string returns Left[String] with error message"): + val invalidFen = "invalid fen string" + val result = FenParser.importGameContext(invalidFen) + + result.isLeft shouldBe true + result.fold(msg => msg should include("Invalid FEN"), _ => fail("Expected Left")) +