open-code-review/scripts/version.test.js
林SO 533f7367cd
Some checks are pending
CI / test (push) Waiting to run
CI / windows (push) Waiting to run
CI / cross-compile (amd64, darwin) (push) Waiting to run
CI / cross-compile (amd64, windows) (push) Waiting to run
CI / cross-compile (arm64, darwin) (push) Waiting to run
CI / cross-compile (arm64, linux) (push) Waiting to run
CI / cross-compile (arm64, windows) (push) Waiting to run
CodeQL Advanced / Analyze (go) (push) Waiting to run
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
fix(updater): discard stale version hints (#720)
2026-08-17 22:35:46 +08:00

40 lines
1.5 KiB
JavaScript

// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 alibaba/open-code-review Contributors
"use strict";
const assert = require("assert");
const {
parseVersionOutput,
semverGt,
shouldShowUpdateHint,
} = require("./version");
assert.strictEqual(
parseVersionOutput("open-code-review v1.8.6 (1b193db35) darwin/arm64"),
"1.8.6"
);
assert.strictEqual(parseVersionOutput("version unavailable"), null);
assert.strictEqual(
parseVersionOutput("open-code-review v1.8.6-beta.1+darwin.arm64"),
"1.8.6-beta.1+darwin.arm64"
);
assert.strictEqual(semverGt("1.8.7", "1.8.6"), true);
assert.strictEqual(semverGt("1.8.6", "1.8.6"), false);
assert.strictEqual(semverGt("1.8.5", "1.8.6"), false);
assert.strictEqual(semverGt("1.8.6", "1.8.6-beta.1"), true);
assert.strictEqual(semverGt("1.8.6+build.2", "1.8.6+build.1"), false);
assert.strictEqual(semverGt("1.8.6", "1.8.6-beta.1+build.1"), true);
assert.strictEqual(semverGt("not-a-version", "1.8.6"), false);
assert.strictEqual(shouldShowUpdateHint("1.8.7", "1.8.6"), true);
assert.strictEqual(shouldShowUpdateHint("1.8.6", "1.8.6"), false);
assert.strictEqual(shouldShowUpdateHint("1.8.5", "1.8.6"), false);
assert.strictEqual(shouldShowUpdateHint("not-a-version", "1.8.6"), false);
assert.strictEqual(shouldShowUpdateHint("1.8.7", null), false);
assert.strictEqual(shouldShowUpdateHint("1.8.7", "not-a-version"), false);
assert.strictEqual(shouldShowUpdateHint("1.8.6+new", "1.8.6+old"), false);
console.log("version tests passed");