8f71630e78
PR Validation / Unit Tests (pull_request) Successful in 15s
- Move unittests to a dedicated file. - Rework CLI making version part selection an option that can be passed into many commands. - Add support for updates to version constants defined in soruce files.
99 lines
2.9 KiB
Nim
99 lines
2.9 KiB
Nim
import std/[paths, tables, unittest]
|
|
import ./update_version
|
|
|
|
suite "update_version":
|
|
|
|
test "incrementLastVersionPart":
|
|
check:
|
|
incrementLastVersionPart("1.0.0") == "1.0.1"
|
|
incrementLastVersionPart("1.0.0-alpha.1") == "1.0.0-alpha.2"
|
|
incrementLastVersionPart("cicd_alphe.1-prerelease") == "cicd_alphe.2-prerelease"
|
|
incrementLastVersionPart("2024.04.1") == "2024.04.2"
|
|
|
|
test "incrementSemverPart":
|
|
check:
|
|
incrementSemverPart("1.0.0", major) == "2.0.0"
|
|
incrementSemverPart("1.0.0", minor) == "1.1.0"
|
|
incrementSemverPart("1.0.0", patch) == "1.0.1"
|
|
incrementSemverPart("1.5.10", patch) == "1.5.11"
|
|
incrementSemverPart("1.5.10", minor) == "1.6.0"
|
|
incrementSemverPart("1.5.10-alpha.1", prerelease) == "1.5.10-alpha.2"
|
|
incrementSemverPart("1.5.10-alpha.1+build.10", prerelease) == "1.5.10-alpha.2"
|
|
incrementSemverPart("1.5.10-alpha.1+build.10", buildmetadata) == "1.5.10-alpha.1+build.11"
|
|
incrementSemverPart("1.5.10", buildmetadata) == "1.5.10+build.0"
|
|
|
|
test "fmtSemver":
|
|
check:
|
|
fmtSemver(newTable([
|
|
(major, "5"), (minor, "2"), (patch, "62"),
|
|
(prerelease, "alpha.59"), (buildmetadata, "githash_123098")])) ==
|
|
"5.2.62-alpha.59+githash_123098"
|
|
|
|
test "setLastVersionPart":
|
|
check:
|
|
setLastVersionPart("1.0.0", "5") == "1.0.5"
|
|
setLastVersionPart("cicd.2", "3-alpha.1") == "cicd.3-alpha.1"
|
|
|
|
test "setSemverPart":
|
|
check:
|
|
setSemverPart("1.4.2-alpha.5+a3e4b69", minor, "7") == "1.7.0"
|
|
setSemverPart("1.4.2-alpha.5+a3e4b69", major, "3") == "3.0.0"
|
|
setSemverPart("1.4.2-alpha.5+a3e4b69", prerelease, "beta.1") == "1.4.2-beta.1"
|
|
setSemverPart("1.4.2-alpha.5+a3e4b69", buildmetadata, "testbuild") == "1.4.2-alpha.5+testbuild"
|
|
|
|
test "replaceVersionInSource - Nim":
|
|
let pkgVersion = PackageVersion(
|
|
lang: lNim,
|
|
file: Path("./testpackage.nimble"),
|
|
version: "1.0.3",
|
|
name: "testpackage")
|
|
|
|
let source = """
|
|
import std/[sequtils, strutils]
|
|
|
|
const IGNORED_VERSION* = "1.0.0"
|
|
const OTHER_PKG_VERSION* = "4.2.1"
|
|
const TESTPKG_VERSION* = "1.0.2"
|
|
|
|
when isMainModule:
|
|
echo "sample file"
|
|
"""
|
|
|
|
check replaceVersionInSource(source, pkgVersion, "1.0.2") == """
|
|
import std/[sequtils, strutils]
|
|
|
|
const IGNORED_VERSION* = "1.0.0"
|
|
const OTHER_PKG_VERSION* = "4.2.1"
|
|
const TESTPKG_VERSION* = "1.0.3"
|
|
|
|
when isMainModule:
|
|
echo "sample file"
|
|
"""
|
|
|
|
test "replaceVersionInSource - JavaScript":
|
|
let pkgVersion = PackageVersion(
|
|
lang: lNode,
|
|
file: Path("./package.json"),
|
|
version: "1.0.3",
|
|
name: "testpackage")
|
|
|
|
let source = """
|
|
import { createApp } from 'vue'
|
|
import './styles/main.css'
|
|
import App from './App.vue'
|
|
|
|
export const TESTPACKAGE_VERSION = "1.0.2"
|
|
|
|
createApp(App)
|
|
"""
|
|
|
|
check replaceVersionInSource(source, pkgVersion, "1.0.2") == """
|
|
import { createApp } from 'vue'
|
|
import './styles/main.css'
|
|
import App from './App.vue'
|
|
|
|
export const TESTPACKAGE_VERSION = "1.0.3"
|
|
|
|
createApp(App)
|
|
"""
|