From d676f8a0aeedeefa97b6b05d2a135ecc6eaff7bb Mon Sep 17 00:00:00 2001 From: Pat Garrity Date: Sun, 17 Mar 2024 21:46:46 -0500 Subject: [PATCH] Full code coverage and PR builds. --- .forgejo/workflows/build.yaml | 12 ------------ .forgejo/workflows/pull_request.yaml | 24 +++++++++++++++++++++++ build.sbt | 7 +++++-- src/test/scala/gs/uuid/v0/UUIDTests.scala | 7 +++++++ 4 files changed, 36 insertions(+), 14 deletions(-) delete mode 100644 .forgejo/workflows/build.yaml create mode 100644 .forgejo/workflows/pull_request.yaml diff --git a/.forgejo/workflows/build.yaml b/.forgejo/workflows/build.yaml deleted file mode 100644 index 5d3408b..0000000 --- a/.forgejo/workflows/build.yaml +++ /dev/null @@ -1,12 +0,0 @@ -on: [push] -jobs: - test: - runs-on: docker - container: - image: registry.garrity.co:8443/gs/ci-scala:latest - env: - GS_MAVEN_USER: ${{ vars.GS_MAVEN_USER }} - GS_MAVEN_TOKEN: ${{ vars.GS_MAVEN_TOKEN }} - steps: - - uses: actions/checkout@v4 - - run: sbt test diff --git a/.forgejo/workflows/pull_request.yaml b/.forgejo/workflows/pull_request.yaml new file mode 100644 index 0000000..a521fc0 --- /dev/null +++ b/.forgejo/workflows/pull_request.yaml @@ -0,0 +1,24 @@ +on: + pull_request: + types: [opened, synchronize, reopened] + +jobs: + library_snapshot: + runs-on: docker + container: + image: registry.garrity.co:8443/gs/ci-scala:latest + name: 'Build and Test Library Snapshot' + env: + GS_MAVEN_USER: ${{ vars.GS_MAVEN_USER }} + GS_MAVEN_TOKEN: ${{ vars.GS_MAVEN_TOKEN }} + steps: + - uses: actions/checkout@v4 + name: 'Checkout ${{ env.GITHUB_HEAD_REF }}' + - name: 'Pre-Commit' + run: | + pre-commit install + pre-commit run --all-files + - name: 'Unit Tests and Code Coverage' + run: sbt clean coverage test coverageReport + - name: 'Publish Snapshot' + run: sbt clean publish diff --git a/build.sbt b/build.sbt index bc07074..2d2e233 100644 --- a/build.sbt +++ b/build.sbt @@ -5,8 +5,11 @@ ThisBuild / versionScheme := Some("semver-spec") ThisBuild / gsProjectName := "gs-uuid" val sharedSettings = Seq( - scalaVersion := scala3, - version := semVerSelected.value + scalaVersion := scala3, + version := semVerSelected.value, + coverageFailOnMinimum := true, + coverageMinimumStmtTotal := 100, + coverageMinimumBranchTotal := 100 ) lazy val testSettings = Seq( diff --git a/src/test/scala/gs/uuid/v0/UUIDTests.scala b/src/test/scala/gs/uuid/v0/UUIDTests.scala index 891fb76..2bda4f5 100644 --- a/src/test/scala/gs/uuid/v0/UUIDTests.scala +++ b/src/test/scala/gs/uuid/v0/UUIDTests.scala @@ -50,6 +50,13 @@ class UUIDTests extends munit.FunSuite: assert(parsed == Some(base)) } + test("should return lsb, msb, and if the UUID is zero") { + val uuid = UUID.parse("00000000-0000-0000-0000-000000000000") + assert(uuid.map(_.lsb()) == Some(0L)) + assert(uuid.map(_.msb()) == Some(0L)) + assert(uuid.map(_.isZero()) == Some(true)) + } + private def doGen( using UUID.Generator