UNPKG

3.73 kBJavaScriptView Raw
1'use strict';
2
3/* eslint-disable no-unused-expressions */
4
5const chai = require(`chai`);
6const mocha = require(`mocha`);
7
8const shiftedSemverIncrement = require(`./index`);
9
10var expect = chai.expect;
11
12const describe = mocha.describe;
13const it = mocha.it;
14
15describe(`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});