import assert from 'node:assert/strict' import test from 'node:test' import { compareVersions, compatibleMajorRange, isVersionUpgrade, satisfiesVersion, } from '../src/version' test('semantic version comparison never treats inequality as an upgrade', () => { assert.equal(isVersionUpgrade('1.0.0', '1.0.1'), true) assert.equal(isVersionUpgrade('1.0.1', '1.0.0'), false) assert.equal(compareVersions('1.0.0-alpha.2', '1.0.0-alpha.10'), -1) }) test('common compatibility is explicit and bounded by the next major', () => { const range = compatibleMajorRange('1.0.0') assert.equal(range, '>=1.0.0 <2.0.0') assert.equal(satisfiesVersion('1.0.2', range), true) assert.equal(satisfiesVersion('2.0.0', range), false) })