Skip to content

Commit ec25d96

Browse files
committed
Update And modernize
1 parent d5a7d34 commit ec25d96

File tree

11 files changed

+51
-53
lines changed

11 files changed

+51
-53
lines changed

.scalafix.conf

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
rules = [
2+
DisableSyntax,
3+
RedundantSyntax,
4+
//ExplicitResultTypes // not yet compatible with Scala3
5+
]
6+
DisableSyntax.noVars = true
7+
DisableSyntax.noThrows = true
8+
DisableSyntax.noNulls = true
9+
DisableSyntax.noReturns = true
10+
DisableSyntax.noWhileLoops = true
11+
DisableSyntax.noAsInstanceOf = true
12+
DisableSyntax.noIsInstanceOf = true

.scalafmt.conf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
version = 3.7.2
1+
version = 3.7.3
22
runner.dialect = scala3
33
align.preset = most
44
maxColumn = 250

build.sbt

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,29 @@
11
name := "zwords"
22
description := "Guess a word everyday game"
3+
scalaVersion := "3.2.2"
34

45
val versions = new {
5-
val zio = "2.0.10"
6+
val zio = "2.0.13"
67
val zionio = "2.0.1"
78
val zioconfig = "3.0.7"
89
val ziocli = "0.2.2"
9-
val ziojson = "0.4.2"
10-
val ziologging = "2.1.10"
11-
val ziolmdb = "1.0.5"
12-
val tapir = "1.2.10"
13-
val logback = "1.4.5"
10+
val ziojson = "0.5.0"
11+
val ziologging = "2.1.12"
12+
val ziolmdb = "1.0.6"
13+
val tapir = "1.2.13"
14+
val logback = "1.4.7"
1415
}
1516

1617
val sharedSettings = Seq(
1718
scalaVersion := "3.2.2",
1819
Test / fork := true,
1920
testFrameworks += new TestFramework("zio.test.sbt.ZTestFramework"),
2021
scalacOptions ++= Seq("-deprecation"), // "-Xfatal-warnings",
21-
excludeDependencies += "org.scala-lang.modules" % "scala-collection-compat_2.13",
22+
//excludeDependencies += "org.scala-lang.modules" % "scala-collection-compat_2.13",
2223
libraryDependencies ++= Seq(
2324
"dev.zio" %% "zio" % versions.zio,
2425
"dev.zio" %% "zio-test" % versions.zio % Test,
25-
"dev.zio" %% "zio-test-sbt" % versions.zio % Test,
26-
"dev.zio" %% "zio-test-junit" % versions.zio % Test
26+
"dev.zio" %% "zio-test-sbt" % versions.zio % Test
2727
)
2828
)
2929

dictionary/src/test/scala/fr/janalyse/zwords/dictionary/HunspellEnglishSpec.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@
1515
*/
1616
package fr.janalyse.zwords.dictionary
1717

18-
import org.junit.runner.RunWith
1918
import zio.*
2019
import zio.test.*
2120
import zio.test.Assertion.*
2221
import zio.test.TestAspect.*
2322

24-
@RunWith(classOf[zio.test.junit.ZTestJUnitRunner])
25-
class HunspellEnglishSpec extends ZIOSpecDefault {
23+
object HunspellEnglishSpec extends ZIOSpecDefault {
2624
val lang = "en"
2725
override def spec = {
2826
suite("dictionary")(

dictionary/src/test/scala/fr/janalyse/zwords/dictionary/HunspellFrenchSpec.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,12 @@
1515
*/
1616
package fr.janalyse.zwords.dictionary
1717

18-
import org.junit.runner.RunWith
1918
import zio.*
2019
import zio.test.*
2120
import zio.test.Assertion.*
2221
import zio.test.TestAspect.*
2322

24-
@RunWith(classOf[zio.test.junit.ZTestJUnitRunner])
25-
class HunspellFrenchSpec extends ZIOSpecDefault {
23+
object HunspellFrenchSpec extends ZIOSpecDefault {
2624
val lang = "fr"
2725
override def spec = {
2826
suite("dictionary")(

gamelogic/src/test/scala/fr/janalyse/zwords/gamelogic/GameSolverSpec.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,13 @@ package fr.janalyse.zwords.gamelogic
1717

1818
import fr.janalyse.zwords.dictionary.DictionaryService
1919
import fr.janalyse.zwords.wordgen.WordGeneratorService
20-
import org.junit.runner.RunWith
2120
import zio.*
2221
import zio.json.*
2322
import zio.test.*
2423
import zio.test.Assertion.*
2524
import zio.test.TestAspect.*
2625

27-
@RunWith(classOf[zio.test.junit.ZTestJUnitRunner])
28-
class GameSolverSpec extends ZIOSpecDefault {
26+
object GameSolverSpec extends ZIOSpecDefault {
2927

3028
override def spec = {
3129
suite("Game solver spec")(

gamelogic/src/test/scala/fr/janalyse/zwords/gamelogic/GameSpec.scala

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,13 @@ package fr.janalyse.zwords.gamelogic
1717

1818
import fr.janalyse.zwords.dictionary.{DictionaryConfig, DictionaryService}
1919
import fr.janalyse.zwords.wordgen.WordGeneratorService
20-
import org.junit.runner.RunWith
2120
import zio.*
2221
import zio.json.*
2322
import zio.test.*
2423
import zio.test.Assertion.*
2524
import zio.test.TestAspect.*
2625

27-
@RunWith(classOf[zio.test.junit.ZTestJUnitRunner])
28-
class GameSpec extends ZIOSpecDefault {
26+
object GameSpec extends ZIOSpecDefault {
2927
val lang = "fr"
3028
override def spec = {
3129
suite("game logic spec")(

project/plugins.sbt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
1-
addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.16")
21
addSbtPlugin("com.timushev.sbt" % "sbt-updates" % "0.6.3")
2+
addSbtPlugin("com.github.sbt" % "sbt-native-packager" % "1.9.16")
3+
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.4")

webapi/src/main/scala/fr/janalyse/zwords/webapi/WebApiApp.scala

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ import sttp.tapir.server.ziohttp.ZioHttpInterpreter
2828
import sttp.tapir.swagger.bundle.SwaggerInterpreter
2929
import sttp.tapir.ztapir.{oneOfVariant, *}
3030
import zio.*
31-
import zio.lmdb.{LMDB,LMDBConfig}
32-
import zio.http.*
31+
import zio.lmdb.{LMDB, LMDBConfig}
32+
import zio.http.{Server}
3333
import zio.json.*
3434
import zio.json.ast.*
3535
import zio.logging.{LogFormat, removeDefaultLoggers}
@@ -49,10 +49,7 @@ object WebApiApp extends ZIOAppDefault {
4949

5050
// -------------------------------------------------------------------------------------------------------------------
5151

52-
lazy val loggingLayer = removeDefaultLoggers >>> SLF4J.slf4j(
53-
LogLevel.Debug,
54-
format = LogFormat.colored
55-
)
52+
lazy val loggingLayer = removeDefaultLoggers >>> SLF4J.slf4j(format = LogFormat.colored)
5653

5754
override val bootstrap = loggingLayer
5855

@@ -250,7 +247,6 @@ object WebApiApp extends ZIOAppDefault {
250247
Info(title = "ZWORDS Game API", version = "2.0", description = Some("A wordle like game as an API by @BriossantC and @crodav"))
251248
)
252249

253-
254250
def server = for {
255251
clientResources <- System.env("ZWORDS_CLIENT_RESOURCES_PATH").some
256252
clientSideResourcesEndPoints = filesGetServerEndpoint(emptyInput)(clientResources).widen[GameEnv]
@@ -261,13 +257,13 @@ object WebApiApp extends ZIOAppDefault {
261257
zservice <- Server.serve(httpApp.withDefaultErrorResponse)
262258
} yield zservice
263259

264-
val listeningAddress = System
260+
val listeningPort = System
265261
.envOrElse("ZWORDS_LISTENING_PORT", "8090")
266262
.mapAttempt(port => port.toInt)
267263
.mapError(th => Exception("ZWORDS_LISTENING_PORT : provided value is not a number"))
268264
.filterOrFail(port => port > 0 && port < 30000)(Exception("ZWORDS_LISTENING_PORT : Invalid port number provided"))
269-
.mapAttempt(port => InetSocketAddress("127.0.0.1", port))
270-
.mapError(th => Exception("Can't build listening address configuration"))
265+
// .mapAttempt(port => InetSocketAddress("127.0.0.1", port))
266+
// .mapError(th => Exception("Can't build listening address configuration"))
271267

272268
val lmdbConfigLayer = ZLayer.scoped(
273269
for {
@@ -277,8 +273,8 @@ object WebApiApp extends ZIOAppDefault {
277273
lmdbConfig = LMDBConfig(directoryPath.toFile)
278274
} yield lmdbConfig
279275
)
280-
281-
val serverConfigLayer = ZLayer.fromZIO(listeningAddress.map(address => ServerConfig(address = address)))
276+
277+
val serverConfigLayer = ZLayer.fromZIO(listeningPort.map(port => Server.Config.default.port(port)))
282278

283279
override def run =
284280
server

webapi/src/test/scala/fr/janalyse/zwords/webapi/ApiLogicsSpec.scala

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,23 @@ import zio.test.TestAspect.*
1212

1313
import java.util.UUID
1414
import java.util.concurrent.TimeUnit
15-
import org.junit.runner.RunWith
1615
import ApiLogics.*
1716
import fr.janalyse.zwords.dictionary.DictionaryService
1817
import fr.janalyse.zwords.dictionary.DictionaryConfig
1918
import fr.janalyse.zwords.webapi.protocol.GivenWord
2019
import fr.janalyse.zwords.webapi.store.PersistenceService
2120
import fr.janalyse.zwords.wordgen.WordGeneratorService
2221

23-
@RunWith(classOf[zio.test.junit.ZTestJUnitRunner])
24-
class ApiLogicsSpec extends ZIOSpecDefault {
22+
object ApiLogicsSpec extends ZIOSpecDefault {
2523

2624
def playerSuite = suite("player logics")(
2725
test("player CRUD")(
2826
for {
29-
player <- playerGetLogic(None, None, None)
30-
playerId = player.playerId
31-
gottenPlayer <- playerGetLogic(Some(playerId), None, None)
27+
player <- playerGetLogic(None, None, None)
28+
playerId = player.playerId
29+
gottenPlayer <- playerGetLogic(Some(playerId), None, None)
3230
pseudo = "the-gamer"
33-
updatedPlayer <- playerUpdateLogic(gottenPlayer.copy(pseudo = Some(pseudo)), None, None)
31+
updatedPlayer <- playerUpdateLogic(gottenPlayer.copy(pseudo = Some(pseudo)), None, None)
3432
_ <- playerDeleteLogic(playerId, None, None)
3533
gottenHasFailed <- playerGetLogic(Some(playerId), None, None).isFailure
3634
} yield assertTrue(
@@ -40,7 +38,7 @@ class ApiLogicsSpec extends ZIOSpecDefault {
4038
),
4139
test("invalid pseudo updates")(
4240
for {
43-
player <- playerGetLogic(None, None, None)
41+
player <- playerGetLogic(None, None, None)
4442
invalidPseudos = List("", "a", "@@@@", "x" * 43, " ", " truc ")
4543
results <- ZIO.foreach(invalidPseudos) { invalidPseudo =>
4644
playerUpdateLogic(player.copy(pseudo = Some(invalidPseudo)), None, None).isFailure
@@ -57,11 +55,12 @@ class ApiLogicsSpec extends ZIOSpecDefault {
5755
for {
5856
languages <- gameLanguagesLogic
5957
language = "en-common"
60-
player <- playerGetLogic(None, None, None)
58+
_ <- TestClock.setTime(java.time.Instant.ofEpochMilli(0)) // Remember used randomness is using day based seed
59+
player <- playerGetLogic(None, None, None)
6160
round0 <- gameGetLogic(language, player.playerId)
62-
round1 <- gamePlayLogic(language, player.playerId, GivenWord("noses"))
63-
round2 <- gamePlayLogic(language, player.playerId, GivenWord("never"))
64-
round3 <- gamePlayLogic(language, player.playerId, GivenWord("nymph"))
61+
round1 <- gamePlayLogic(language, player.playerId, GivenWord("certain"))
62+
round2 <- gamePlayLogic(language, player.playerId, GivenWord("central"))
63+
round3 <- gamePlayLogic(language, player.playerId, GivenWord("command"))
6564
} yield assertTrue(
6665
languages.keys.contains(language),
6766
round0.state == "playing",

0 commit comments

Comments
 (0)