Files
update-version/tupdate_version.nim
Jonathan Bernard d3f2b8fc6d
PR Validation / Unit Tests (pull_request) Successful in 22s
Migrate to nitely/nim-regex away from std/nre.
2026-03-09 21:42:57 -05:00

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_alpha.1-prerelease") == "cicd_alpha.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)
"""