Skip to main content
Module

std/semver/range_max_test.ts

Deno standard library
Go to Latest
File
// Copyright Isaac Z. Schlueter and Contributors. All rights reserved. ISC license.// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.import { parseRange } from "./parse_range.ts";import { rangeMax } from "./range_max.ts";import { INVALID } from "./constants.ts";import type { SemVer } from "./types.ts";import { assertEquals } from "../assert/assert_equals.ts";
Deno.test({ name: "rangeMax()", fn: async (t) => { const versions: [string, SemVer][] = [ ["=1.0.0", { major: 1, minor: 0, patch: 0, prerelease: [], build: [] }], ["1.0.0", { major: 1, minor: 0, patch: 0, prerelease: [], build: [] }], ["1.0", { major: 1, minor: 0, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["1", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["1.0.x", { major: 1, minor: 0, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["1.x.x", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["1.x", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["1.0.*", { major: 1, minor: 0, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["1.*.*", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["1.*", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["*", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["1.*.x", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["1.x.*", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["~1.1.1", { major: 1, minor: 1, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["~1.1.1-beta", { major: 1, minor: 1, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["^1.1.1", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], ["^1.1.1-beta", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["1.1.1 - 1.8.0", { major: 1, minor: 8, patch: 0, prerelease: [], build: [], }], ["1.1 - 1.8.0", { major: 1, minor: 8, patch: 0, prerelease: [], build: [], }], ["1.1.1 - 1.8", { major: 1, minor: 8, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["<1.0.0", { build: [], major: 0, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], }], ["<1.0.0-0", { build: [], major: 0, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], }], ["<1.0.0-beta", { build: [], major: 0, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], }],
[">1.0.0", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], [">1.0.0-0", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], [">1.0.0-beta", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["<0.0.0-beta", INVALID], [">0.0.0-beta", { build: [], major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], }], ["<0.0.1-beta", { major: 0, minor: 0, patch: 0, prerelease: [], build: [], }], [">0.0.1-beta", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["<2 || >4", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], [">=4 || <=2", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
[">=1.1.1 <2 || >=2.2.2 <2", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], [">=2.2.2 <2 || >=1.1.1 <2", { major: 1, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
[">2 || >1.0.0", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], [">2 || >1.0.0-0", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }], [">2 || >1.0.0-beta", { major: Number.POSITIVE_INFINITY, minor: Number.POSITIVE_INFINITY, patch: Number.POSITIVE_INFINITY, prerelease: [], build: [], }],
["<0.0.0-beta >0.0.0-alpha", INVALID], [">0.0.0-alpha <0.0.0-beta", INVALID], [">4 <3", INVALID], ];
for (const [version, expected] of versions) { await t.step(version, () => { const actual = rangeMax(parseRange(version)); assertEquals(actual, expected); }); } },});