import { assertEquals } from "@std/assert";
import { Testbed } from "../../testbed.ts";
import { SortVersionNumbers, ByVersionNumber, LatestVersionNumber } from "../../../modules/utils/version_helpers.ts";
Testbed('Sort Version Numbers', ({ Test }) => {
const test_version_numbers = ['1.1', '1.0', '1.0.11', '1.2', '1.0.1'];
Test('SortVersionNumbers() sorts the provided version numbers in descending order', () => {
const sorted = SortVersionNumbers(test_version_numbers);
assertEquals(sorted, ["1.2", "1.1", "1.0.11", "1.0.1", "1.0"]);
})
Test('LatestVersionNumber() returns the highest version number in the provided array', () => {
const latest = LatestVersionNumber(test_version_numbers);
assertEquals(latest, "1.2");
})
Test('.sort(ByVersionNumber) sorts and mutates the array by version number in descending order', () => {
test_version_numbers.sort(ByVersionNumber);
assertEquals(test_version_numbers, ["1.2", "1.1", "1.0.11", "1.0.1", "1.0"]);
})
Test('.sort(ByVersionNumber.asc) sorts and mutates the array by version number in ascending order', () => {
test_version_numbers.sort(ByVersionNumber.asc);
assertEquals(test_version_numbers, ["1.0", "1.0.1", "1.0.11", "1.1", "1.2"]);
})
});