Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Tests on PRs

on:
pull_request:
branches: [ master, develop ]

jobs:

build-project:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@master

- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17

- name: Run scalafmt
run: sbt scalafmtCheckAll

- name: Run tests
run: sbt test
8 changes: 7 additions & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,13 @@ name := "zio-flyway-db-migrator"

version := "0.1"

scalaVersion := "3.2.0"
scalaVersion := "3.3.0-RC2"

scalacOptions ++= Seq(
"-Wunused:imports",
"-Wunused:privates",
"-Wunused:locals"
)

// for zio-interop
resolvers +=
Expand Down
8 changes: 6 additions & 2 deletions project/plugins.sbt
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.1")
// code rules and format
addSbtPlugin("io.github.davidgregory084" % "sbt-tpolecat" % "0.4.2")
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.4.6")
addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")
addSbtPlugin("ch.epfl.scala" % "sbt-scalafix" % "0.10.4")

// code running
addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.1")
5 changes: 2 additions & 3 deletions src/main/scala/com/github/denisnovac/ziolearn/Main.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,11 @@ import zio.config.ReadError
import com.github.denisnovac.ziolearn.logging.LoggerLayer
import com.github.denisnovac.ziolearn.config.AppConfig
import com.github.denisnovac.ziolearn.jdbc.DBLayer

import java.io.File
import doobie.util.transactor.Transactor
import com.github.denisnovac.ziolearn.cats.ZioCatsLayer
import com.github.denisnovac.ziolearn.config.DBConfig

import java.io.File

object Main extends zio.interop.catz.CatsApp {

private val configsLayer: ZLayer[Any, ReadError[String], DBConfig] =
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.github.denisnovac.ziolearn.jdbc

import zio.*
import zio.logging.*
import doobie.util.transactor.Transactor
import com.github.denisnovac.ziolearn.config.DBConfig
import com.github.denisnovac.ziolearn.cats.ZioCatsLayer.ZioCats
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,9 @@
package com.github.denisnovac.ziolearn.jdbc

import zio.*
import zio.logging.*
import org.flywaydb.core.Flyway
import org.flywaydb.core.api.configuration.FluentConfiguration
import scala.jdk.CollectionConverters.*
import scala.annotation.migration
import org.flywaydb.core.api.Location
import org.flywaydb.core.api.MigrationState
import com.github.denisnovac.ziolearn.config.DBConfig

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,7 @@ import zio.interop.catz.*
import com.github.denisnovac.ziolearn.config.DBConfig
import com.github.denisnovac.ziolearn.cats.ZioCatsLayer.ZioCats
import doobie.hikari.HikariTransactor
import cats.effect.kernel.Sync
import doobie.*
import doobie.implicits.*
import doobie.hikari.*
import cats.implicits.*
import cats.effect.kernel.Async
import cats.effect.std.Dispatcher
import cats.effect.kernel.Resource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,8 @@ import zio.*
import zio.logging.LogFormat.*
import zio.logging.backend.SLF4J
import doobie.util.log.LogHandler
import doobie.util.log.LogEvent

object LoggerLayer {
private val format = timestamp.fixed(32) |-| level |-| label("message", quoted(line))

/** Copypasterd from doobie's default LogHandler.jdkLogHandler
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ import doobie.ConnectionIO
import doobie.implicits.*
import doobie.util.transactor.Transactor
import cats.effect.Sync
import cats.implicits.*
import zio.*
import UserStatusService.*
import UserStatusService.UserStatusServiceErrors.*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.github.denisnovac.ziolearn.jdbc

import zio.*
import zio.interop.catz.*
import com.github.denisnovac.ziolearn.config.DBConfig
import org.testcontainers.containers.PostgreSQLContainer
import doobie.util.transactor.Transactor
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,23 @@ import zio.Task
import zio.*
import zio.test.*
import com.github.denisnovac.ziolearn.model.*
import java.time.Instant
import doobie.implicits.*
import cats.effect.kernel.Async
import doobie.util.log.LogHandler
import doobie.ConnectionIO

object StatusRepoSuit extends SharedPostgresContainer {
import com.github.denisnovac.ziolearn.util.TimeUtils

object StatusRepoSuit extends SharedPostgresContainer with TimeUtils {

override def spec: Spec[Transactor[Task] & Async[Task] & LogHandler & (TestEnvironment & Scope), Any] =
test("CRUD for StatusRepo") {

val expectedStatus = Status(100, "StatusRepoSuitTest", Instant.now())
val modifiedStatus = Status(100, "StatusRepoSuitTest2", Instant.now())
val expectedStatus = Status(100, "StatusRepoSuitTest", timeNow())
val modifiedStatus = Status(100, "StatusRepoSuitTest2", timeNow())

def crud(repo: StatusRepo[ConnectionIO], urepo: UserRepo[ConnectionIO]) = for {
_ <- urepo.upsert(User(100, "test", "test", Instant.now(), Instant.now()))
_ <- urepo.upsert(User(100, "test", "test", timeNow(), timeNow()))

e <- repo.upsert(expectedStatus)
er <- repo.read(100)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@ import zio.Task
import zio.*
import zio.test.*
import com.github.denisnovac.ziolearn.model.*
import java.time.Instant
import doobie.implicits.*
import cats.effect.kernel.Async
import doobie.util.log.LogHandler

object UserRepoSuit extends SharedPostgresContainer {
import com.github.denisnovac.ziolearn.util.TimeUtils

object UserRepoSuit extends SharedPostgresContainer with TimeUtils {
override def spec: Spec[Transactor[Task] & Async[Task] & LogHandler & (TestEnvironment & Scope), Any] =
test("CRUD for UserRepo") {

val expectedUser = User(1, "UserRepoSuitTest", "test", Instant.now(), Instant.now())
val expectedUser = User(1, "UserRepoSuitTest", "test", timeNow(), timeNow())
val modifiedExpected = expectedUser.copy(uValue = "test2")

def crud(repo: UserRepo[ConnectionIO]) = for {
Expand Down
11 changes: 11 additions & 0 deletions src/test/scala/com/github/denisnovac/ziolearn/util/TimeUtils.scala
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package com.github.denisnovac.ziolearn.util

import java.time.Instant

trait TimeUtils {

def timeNow() = {
val i = Instant.now()
i.minusNanos(i.getNano())
}
}