Add the ability to directly set version parts.
PR Validation / Unit Tests (pull_request) Successful in 15s
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.
This commit was merged in pull request #2.
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
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)
|
||||
"""
|
||||
Reference in New Issue
Block a user