You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
58 lines
2.4 KiB
58 lines
2.4 KiB
var matcher = require('../semver-range-matcher');
|
|
var assert = require('assert');
|
|
|
|
describe('Version range matcher', function () {
|
|
it('should match', function () {
|
|
expect(true, true, true, '^1.0.0', '1.0.0');
|
|
expect(true, true, true, '^1.0.0', '1.0.1');
|
|
expect(true, true, true, '^1.0.0', '1.1.1');
|
|
expect(false, true, true, '^1.0.0', '2.1.1');
|
|
expect(false, true, true, '>=2.5.10 <= 3.0.1', '2.1.1');
|
|
expect(false, true, true, '>=2.5.10 <= 3.0.1', '3.0.2');
|
|
expect(true, true, true, '>=2.5.10 <= 3.0.1', '2.6.0');
|
|
expect(true, true, true, '', '2.6.0');
|
|
expect(true, true, true, '*', '2.6.0');
|
|
expect(true, true, true, '3.3.x', '3.3.80');
|
|
expect(true, true, true, '2.x', '2.36.0');
|
|
expect(true, true, true, '1.0.0 - 2.9999.9999', '2.36.10');
|
|
expect(true, true, true, '~1.2.3', '1.2.4');
|
|
expect(false, true, true, '~1.2.3', '1.3.4');
|
|
});
|
|
|
|
it('should report invalid version', function () {
|
|
expect(undefined, false, true, '^1.0.0', '294r8af092b');
|
|
expect(undefined, false, true, '^1.0.0', 'test');
|
|
expect(undefined, false, true, '^1.0.0', '');
|
|
expect(undefined, false, true, '^1.0.0', '1.0');
|
|
expect(undefined, false, true, '^1.0.0', '1.0.a');
|
|
});
|
|
|
|
it('should report invalid version range', function () {
|
|
expect(undefined, true, false, 'http://asdf.com/asdf.tar.gz', '1.0.0');
|
|
expect(undefined, true, false, 'latest', '1.0.0');
|
|
expect(undefined, true, false, 'file:../dyl', '1.0.0');
|
|
expect(undefined, true, false, 'git://github.com/markdalgleish/gh-pages#cli-message', '1.0.0');
|
|
expect(undefined, true, false, 'mochajs/mocha#4727d357ea', '1.0.0');
|
|
});
|
|
|
|
it('should respect asterisk version range', function () {
|
|
expect(true, true, true, '*', '4.0.0-beta.3');
|
|
});
|
|
});
|
|
|
|
function expect(expectedMatched, expectedValidVersion, expectedValidVersionRange, range, version) {
|
|
var result = matcher.match([{
|
|
packageName:'qqq',
|
|
versionRange: range,
|
|
version: version
|
|
}]);
|
|
assert.strictEqual(result.length, 1);
|
|
var response = result[0];
|
|
assert.strictEqual(response.packageName, 'qqq');
|
|
assert.strictEqual(response.versionRange, range);
|
|
assert.strictEqual(response.version, version);
|
|
assert.strictEqual(response.matched, expectedMatched);
|
|
assert.strictEqual(response.validVersionRange, expectedValidVersionRange);
|
|
assert.strictEqual(response.validVersion, expectedValidVersion);
|
|
}
|