1 | 'use strict';
|
2 |
|
3 |
|
4 |
|
5 | const chai = require(`chai`);
|
6 | const mocha = require(`mocha`);
|
7 |
|
8 | const shiftedSemverIncrement = require(`./index`);
|
9 |
|
10 | var expect = chai.expect;
|
11 |
|
12 | const describe = mocha.describe;
|
13 | const it = mocha.it;
|
14 |
|
15 | describe(`shifted-semver-increment`, function () {
|
16 | describe(`major version zero`, () => {
|
17 | const testCases = [
|
18 | [`0.0.0`, `patch`, undefined, `0.0.1`],
|
19 | [`0.0.0`, `minor`, undefined, `0.0.1`],
|
20 | [`0.0.0`, `major`, undefined, `0.1.0`],
|
21 |
|
22 | [`0.0.0`, `prerelease`, undefined, `0.0.1-0`],
|
23 | [`0.0.0`, `prepatch`, undefined, `0.0.1-0`],
|
24 | [`0.0.0`, `preminor`, undefined, `0.0.1-0`],
|
25 | [`0.0.0`, `premajor`, undefined, `0.1.0-0`],
|
26 |
|
27 | [`0.1.0`, `patch`, undefined, `0.1.1`],
|
28 | [`0.1.0`, `minor`, undefined, `0.1.1`],
|
29 | [`0.1.0`, `major`, undefined, `0.2.0`],
|
30 |
|
31 | [`0.1.0`, `prerelease`, undefined, `0.1.1-0`],
|
32 | [`0.1.0`, `prepatch`, undefined, `0.1.1-0`],
|
33 | [`0.1.0`, `preminor`, undefined, `0.1.1-0`],
|
34 | [`0.1.0`, `premajor`, undefined, `0.2.0-0`],
|
35 |
|
36 | [`0.1.0-0`, `prerelease`, undefined, `0.1.0-1`],
|
37 | [`0.1.0-0`, `prepatch`, undefined, `0.1.1-0`],
|
38 | [`0.1.0-0`, `preminor`, undefined, `0.1.1-0`],
|
39 | [`0.1.0-0`, `premajor`, undefined, `0.2.0-0`],
|
40 |
|
41 | [`0.0.0`, `patch`, `beta`, `0.0.1`],
|
42 | [`0.0.0`, `minor`, `beta`, `0.0.1`],
|
43 | [`0.0.0`, `major`, `beta`, `0.1.0`],
|
44 |
|
45 | [`0.0.0`, `prerelease`, `beta`, `0.0.1-beta.0`],
|
46 | [`0.0.0`, `prepatch`, `beta`, `0.0.1-beta.0`],
|
47 | [`0.0.0`, `preminor`, `beta`, `0.0.1-beta.0`],
|
48 | [`0.0.0`, `premajor`, `beta`, `0.1.0-beta.0`],
|
49 |
|
50 | [`0.1.0-0`, `prerelease`, `beta`, `0.1.0-beta.0`],
|
51 | [`0.1.0-0`, `prepatch`, `beta`, `0.1.1-beta.0`],
|
52 | [`0.1.0-0`, `preminor`, `beta`, `0.1.1-beta.0`],
|
53 | [`0.1.0-0`, `premajor`, `beta`, `0.2.0-beta.0`],
|
54 |
|
55 | [`0.1.0-beta.0`, `prerelease`, `beta`, `0.1.0-beta.1`],
|
56 | [`0.1.0-beta.0`, `prepatch`, `beta`, `0.1.1-beta.0`],
|
57 | [`0.1.0-beta.0`, `preminor`, `beta`, `0.1.1-beta.0`],
|
58 | [`0.1.0-beta.0`, `premajor`, `beta`, `0.2.0-beta.0`],
|
59 | ];
|
60 |
|
61 | testCases.forEach(testCase =>
|
62 | it(`handles incrementing ${testCase[0]} using ${testCase[1]} to ${testCase[3]}`, () =>
|
63 | expect(shiftedSemverIncrement(testCase[0], testCase[1], testCase[2])).to.equal(testCase[3])));
|
64 | });
|
65 |
|
66 | describe(`non-major version zero`, () => {
|
67 | const testCases = [
|
68 | [`1.0.0`, `patch`, undefined, `1.0.1`],
|
69 | [`1.0.0`, `minor`, undefined, `1.1.0`],
|
70 | [`1.0.0`, `major`, undefined, `2.0.0`],
|
71 |
|
72 | [`1.0.0`, `prerelease`, undefined, `1.0.1-0`],
|
73 | [`1.0.0`, `prepatch`, undefined, `1.0.1-0`],
|
74 | [`1.0.0`, `preminor`, undefined, `1.1.0-0`],
|
75 | [`1.0.0`, `premajor`, undefined, `2.0.0-0`],
|
76 |
|
77 | [`1.0.0`, `prerelease`, `beta`, `1.0.1-beta.0`],
|
78 | [`1.0.0`, `prepatch`, `beta`, `1.0.1-beta.0`],
|
79 | [`1.0.0`, `preminor`, `beta`, `1.1.0-beta.0`],
|
80 | [`1.0.0`, `premajor`, `beta`, `2.0.0-beta.0`],
|
81 |
|
82 | [`1.0.0-beta.0`, `prerelease`, `beta`, `1.0.0-beta.1`],
|
83 | [`1.0.0-beta.0`, `prepatch`, `beta`, `1.0.1-beta.0`],
|
84 | [`1.0.0-beta.0`, `preminor`, `beta`, `1.1.0-beta.0`],
|
85 | [`1.0.0-beta.0`, `premajor`, `beta`, `2.0.0-beta.0`],
|
86 |
|
87 | [`1.0.1`, `patch`, undefined, `1.0.2`],
|
88 | [`1.0.1`, `minor`, undefined, `1.1.0`],
|
89 | [`1.0.1`, `major`, undefined, `2.0.0`],
|
90 |
|
91 | [`2.0.0`, `patch`, undefined, `2.0.1`],
|
92 | [`2.0.0`, `minor`, undefined, `2.1.0`],
|
93 | [`2.0.0`, `major`, undefined, `3.0.0`],
|
94 | ];
|
95 |
|
96 | testCases.forEach(testCase =>
|
97 | it(`handles incrementing ${testCase[0]} using ${testCase[1]} to ${testCase[3]}`, () =>
|
98 | expect(shiftedSemverIncrement(testCase[0], testCase[1], testCase[2])).to.equal(testCase[3])));
|
99 | });
|
100 | });
|