|
| 1 | +" t/semver.vim - Semver parsing and comparison tests |
| 2 | +" Maintainer: Noah Frederick |
| 3 | + |
| 4 | +describe 'composer#semver#parse()' |
| 5 | + it 'parses the major version' |
| 6 | + Expect composer#semver#parse('1.0.0').major is '1' |
| 7 | + Expect composer#semver#parse('2.0').major is '2' |
| 8 | + Expect composer#semver#parse('3').major is '3' |
| 9 | + end |
| 10 | + |
| 11 | + it 'parses the minor version' |
| 12 | + Expect composer#semver#parse('1.1.0').minor is '1' |
| 13 | + Expect composer#semver#parse('2.2').minor is '2' |
| 14 | + Expect composer#semver#parse('3').minor is '' |
| 15 | + end |
| 16 | + |
| 17 | + it 'parses the patch version' |
| 18 | + Expect composer#semver#parse('1.0.1').patch is '1' |
| 19 | + Expect composer#semver#parse('2.0').patch is '' |
| 20 | + Expect composer#semver#parse('3').patch is '' |
| 21 | + end |
| 22 | +end |
| 23 | + |
| 24 | +describe 'composer#semver#compare()' |
| 25 | + it 'fails with invalid comparator' |
| 26 | + Expect expr { composer#semver#compare('1.0.1', 'blah', '1.2.0').patch } to_throw 'blah is not a valid comparator' |
| 27 | + end |
| 28 | + |
| 29 | + it 'compares with ==' |
| 30 | + Expect composer#semver#compare('1.0.1', '==', '1.0.1') is v:true |
| 31 | + Expect composer#semver#compare('1.4.1', '==', '1.0.1') is v:false |
| 32 | + Expect composer#semver#compare('1.0', '==', '1.0') is v:true |
| 33 | + Expect composer#semver#compare('1', '==', '1') is v:true |
| 34 | + Expect composer#semver#compare('1', '==', '1.6.0') is v:true |
| 35 | + end |
| 36 | + |
| 37 | + it 'compares with !=' |
| 38 | + Expect composer#semver#compare('1.4.1', '!=', '1.0.1') is v:true |
| 39 | + Expect composer#semver#compare('1.0.1', '!=', '1.0.1') is v:false |
| 40 | + end |
| 41 | + |
| 42 | + it 'compares with <' |
| 43 | + Expect composer#semver#compare('1.4.1', '<', '2.0.0') is v:true |
| 44 | + Expect composer#semver#compare('3.0.1', '<', '1.0.1') is v:false |
| 45 | + Expect composer#semver#compare('1.0.1', '<', '1.0.1') is v:false |
| 46 | + Expect composer#semver#compare('2.0', '<', '2') is v:false |
| 47 | + Expect composer#semver#compare('2', '<', '2.6.3') is v:false |
| 48 | + Expect composer#semver#compare('2.3.4', '<', '3') is v:true |
| 49 | + end |
| 50 | + |
| 51 | + it 'compares with <=' |
| 52 | + Expect composer#semver#compare('1.4.1', '<=', '1.9.0') is v:true |
| 53 | + Expect composer#semver#compare('2.0.0', '<=', '1.0.1') is v:false |
| 54 | + Expect composer#semver#compare('1.0.1', '<=', '1.0.1') is v:true |
| 55 | + end |
| 56 | + |
| 57 | + it 'compares with >' |
| 58 | + Expect composer#semver#compare('1.4.1', '>', '1.0.1') is v:true |
| 59 | + Expect composer#semver#compare('1.0.1', '>', '2.0.0') is v:false |
| 60 | + Expect composer#semver#compare('1.0.1', '>', '1.0.1') is v:false |
| 61 | + Expect composer#semver#compare('1.0.1', '>', '1') is v:false |
| 62 | + end |
| 63 | + |
| 64 | + it 'compares with >=' |
| 65 | + Expect composer#semver#compare('1.4.1', '>=', '1.0.1') is v:true |
| 66 | + Expect composer#semver#compare('1.0.1', '>=', '8.0.1') is v:false |
| 67 | + Expect composer#semver#compare('1.0.1', '>=', '1.0.1') is v:true |
| 68 | + Expect composer#semver#compare('1', '>=', '1.6.10') is v:true |
| 69 | + end |
| 70 | +end |
| 71 | + |
| 72 | +" vim: fdm=marker:sw=2:sts=2:et |
0 commit comments