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) """