1.1.2Updated a month ago
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"]);
  })

});