release-it 19.0.0-next.1 → 19.0.0-next.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/lib/cli.js +2 -5
- package/lib/config.js +34 -2
- package/lib/index.js +26 -9
- package/lib/log.js +7 -7
- package/lib/plugin/github/GitHub.js +2 -6
- package/lib/plugin/github/util.js +1 -1
- package/lib/plugin/gitlab/GitLab.js +11 -4
- package/lib/plugin/npm/npm.js +4 -0
- package/lib/plugin/version/Version.js +6 -4
- package/package.json +14 -23
- package/schema/gitlab.json +4 -0
- package/schema/release-it.json +4 -0
- package/test/cli.js +6 -5
- package/test/config.js +228 -122
- package/test/git.init.js +220 -218
- package/test/git.js +359 -364
- package/test/github.js +563 -480
- package/test/gitlab.js +374 -336
- package/test/log.js +141 -138
- package/test/npm.js +315 -373
- package/test/plugin-name.js +7 -6
- package/test/plugins.js +200 -211
- package/test/prompt.js +26 -32
- package/test/shell.js +63 -60
- package/test/spinner.js +20 -24
- package/test/stub/github.js +113 -123
- package/test/stub/gitlab.js +75 -51
- package/test/tasks.interactive.js +215 -164
- package/test/tasks.js +392 -412
- package/test/util/helpers.js +4 -3
- package/test/util/index.js +34 -7
- package/test/util/mock.js +11 -0
- package/test/utils.js +33 -32
- package/test/version.js +192 -176
- package/test/util/setup.js +0 -3
package/test/util/helpers.js
CHANGED
|
@@ -25,9 +25,10 @@ const gitAdd = (content, filePath, message) => {
|
|
|
25
25
|
return match ? match[1] : null;
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
const getArgs = (
|
|
29
|
-
|
|
30
|
-
.map(
|
|
28
|
+
const getArgs = (fn, prefix) =>
|
|
29
|
+
fn.mock.calls
|
|
30
|
+
.map(call => call.arguments[0])
|
|
31
|
+
.map(arg => (typeof arg !== 'string' ? arg.join(' ') : arg))
|
|
31
32
|
.filter(cmd => cmd.startsWith(prefix))
|
|
32
33
|
.map(cmd => cmd.trim());
|
|
33
34
|
|
package/test/util/index.js
CHANGED
|
@@ -1,21 +1,48 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { mock } from 'node:test';
|
|
2
2
|
import semver from 'semver';
|
|
3
3
|
import { parseVersion } from '../../lib/util.js';
|
|
4
|
-
import Log from '../../lib/log.js';
|
|
5
4
|
import Config from '../../lib/config.js';
|
|
6
5
|
import ShellStub from '../stub/shell.js';
|
|
7
|
-
import Spinner from '../../lib/spinner.js';
|
|
8
6
|
import Prompt from '../../lib/prompt.js';
|
|
9
7
|
|
|
8
|
+
const noop = Promise.resolve();
|
|
9
|
+
|
|
10
|
+
export class LogStub {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.log = mock.fn();
|
|
13
|
+
this.error = mock.fn();
|
|
14
|
+
this.info = mock.fn();
|
|
15
|
+
this.warn = mock.fn();
|
|
16
|
+
this.verbose = mock.fn();
|
|
17
|
+
this.exec = mock.fn();
|
|
18
|
+
this.obtrusive = mock.fn();
|
|
19
|
+
this.preview = mock.fn();
|
|
20
|
+
}
|
|
21
|
+
resetCalls() {
|
|
22
|
+
this.log.mock.resetCalls();
|
|
23
|
+
this.error.mock.resetCalls();
|
|
24
|
+
this.info.mock.resetCalls();
|
|
25
|
+
this.warn.mock.resetCalls();
|
|
26
|
+
this.verbose.mock.resetCalls();
|
|
27
|
+
this.exec.mock.resetCalls();
|
|
28
|
+
this.obtrusive.mock.resetCalls();
|
|
29
|
+
this.preview.mock.resetCalls();
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
export class SpinnerStub {
|
|
34
|
+
show({ enabled = true, task }) {
|
|
35
|
+
return enabled ? task() : noop;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
10
39
|
export let factory = (Definition, { namespace, options = {}, container = {} } = {}) => {
|
|
11
40
|
options = Object.assign({}, { ci: true, verbose: false, 'dry-run': false, debug: false }, options);
|
|
12
41
|
const ns = namespace || Definition.name.toLowerCase();
|
|
13
42
|
container.config = container.config || new Config(Object.assign({ config: false }, options));
|
|
14
|
-
container.log =
|
|
43
|
+
container.log = new LogStub();
|
|
15
44
|
|
|
16
|
-
|
|
17
|
-
spinner.show.callsFake(({ enabled = true, task }) => (enabled ? task() : () => {}));
|
|
18
|
-
container.spinner = spinner;
|
|
45
|
+
container.spinner = new SpinnerStub();
|
|
19
46
|
container.shell = container.shell || new ShellStub({ container });
|
|
20
47
|
|
|
21
48
|
container.prompt = container.prompt || new Prompt({ container });
|
package/test/utils.js
CHANGED
|
@@ -1,35 +1,36 @@
|
|
|
1
1
|
import { EOL } from 'node:os';
|
|
2
|
-
import test from '
|
|
2
|
+
import test from 'node:test';
|
|
3
|
+
import assert from 'node:assert/strict';
|
|
4
|
+
import { stripVTControlCharacters } from 'node:util';
|
|
3
5
|
import mockStdIo from 'mock-stdio';
|
|
4
|
-
import stripAnsi from 'strip-ansi';
|
|
5
6
|
import { format, truncateLines, parseGitUrl, parseVersion } from '../lib/util.js';
|
|
6
7
|
|
|
7
|
-
test('format',
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
test('format', () => {
|
|
9
|
+
assert.equal(format('release v${version}', { version: '1.0.0' }), 'release v1.0.0');
|
|
10
|
+
assert.equal(format('release v${version} (${name})', { version: '1.0.0', name: 'foo' }), 'release v1.0.0 (foo)');
|
|
11
|
+
assert.equal(format('release v${version} (${name})', { version: '1.0.0', name: 'foo' }), 'release v1.0.0 (foo)');
|
|
11
12
|
});
|
|
12
13
|
|
|
13
|
-
test('format (throw)',
|
|
14
|
+
test('format (throw)', () => {
|
|
14
15
|
mockStdIo.start();
|
|
15
|
-
|
|
16
|
+
assert.throws(() => format('release v${foo}', { version: '1.0.0' }), /foo is not defined/);
|
|
16
17
|
const { stdout, stderr } = mockStdIo.end();
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
assert.equal(stdout, '');
|
|
19
|
+
assert.match(
|
|
20
|
+
stripVTControlCharacters(stderr),
|
|
20
21
|
/ERROR Unable to render template with context:\s+release v\${foo}\s+{"version":"1\.0\.0"}\s+ERROR ReferenceError: foo is not defined/
|
|
21
22
|
);
|
|
22
23
|
});
|
|
23
24
|
|
|
24
|
-
test('truncateLines',
|
|
25
|
+
test('truncateLines', () => {
|
|
25
26
|
const input = `1${EOL}2${EOL}3${EOL}4${EOL}5${EOL}6`;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
assert.equal(truncateLines(input), input);
|
|
28
|
+
assert.equal(truncateLines(input, 3), `1${EOL}2${EOL}3${EOL}...and 3 more`);
|
|
29
|
+
assert.equal(truncateLines(input, 1, '...'), `1...`);
|
|
29
30
|
});
|
|
30
31
|
|
|
31
|
-
test('parseGitUrl',
|
|
32
|
-
|
|
32
|
+
test('parseGitUrl', () => {
|
|
33
|
+
assert.deepEqual(parseGitUrl('https://github.com/webpro/release-it.git'), {
|
|
33
34
|
host: 'github.com',
|
|
34
35
|
owner: 'webpro',
|
|
35
36
|
project: 'release-it',
|
|
@@ -38,7 +39,7 @@ test('parseGitUrl', t => {
|
|
|
38
39
|
repository: 'webpro/release-it'
|
|
39
40
|
});
|
|
40
41
|
|
|
41
|
-
|
|
42
|
+
assert.deepEqual(parseGitUrl('git@gitlab.com:org/sub-group/repo-in-sub-group.git'), {
|
|
42
43
|
host: 'gitlab.com',
|
|
43
44
|
owner: 'org/sub-group',
|
|
44
45
|
project: 'repo-in-sub-group',
|
|
@@ -47,7 +48,7 @@ test('parseGitUrl', t => {
|
|
|
47
48
|
repository: 'org/sub-group/repo-in-sub-group'
|
|
48
49
|
});
|
|
49
50
|
|
|
50
|
-
|
|
51
|
+
assert.deepEqual(parseGitUrl('git@github.com:org/example.com.git'), {
|
|
51
52
|
host: 'github.com',
|
|
52
53
|
owner: 'org',
|
|
53
54
|
project: 'example.com',
|
|
@@ -56,7 +57,7 @@ test('parseGitUrl', t => {
|
|
|
56
57
|
repository: 'org/example.com'
|
|
57
58
|
});
|
|
58
59
|
|
|
59
|
-
|
|
60
|
+
assert.deepEqual(parseGitUrl('file://Users/john/doe/owner/project'), {
|
|
60
61
|
host: 'users',
|
|
61
62
|
owner: 'owner',
|
|
62
63
|
project: 'project',
|
|
@@ -65,7 +66,7 @@ test('parseGitUrl', t => {
|
|
|
65
66
|
repository: 'owner/project'
|
|
66
67
|
});
|
|
67
68
|
|
|
68
|
-
|
|
69
|
+
assert.deepEqual(parseGitUrl('/Users/john/doe/owner/project'), {
|
|
69
70
|
host: 'users',
|
|
70
71
|
owner: 'owner',
|
|
71
72
|
project: 'project',
|
|
@@ -74,7 +75,7 @@ test('parseGitUrl', t => {
|
|
|
74
75
|
repository: 'owner/project'
|
|
75
76
|
});
|
|
76
77
|
|
|
77
|
-
|
|
78
|
+
assert.deepEqual(parseGitUrl('C:\\\\Users\\john\\doe\\owner\\project'), {
|
|
78
79
|
host: 'users',
|
|
79
80
|
owner: 'owner',
|
|
80
81
|
project: 'project',
|
|
@@ -84,14 +85,14 @@ test('parseGitUrl', t => {
|
|
|
84
85
|
});
|
|
85
86
|
});
|
|
86
87
|
|
|
87
|
-
test('parseVersion',
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
88
|
+
test('parseVersion', () => {
|
|
89
|
+
assert.deepEqual(parseVersion(), { version: undefined, isPreRelease: false, preReleaseId: null });
|
|
90
|
+
assert.deepEqual(parseVersion(0), { version: '0.0.0', isPreRelease: false, preReleaseId: null });
|
|
91
|
+
assert.deepEqual(parseVersion(1), { version: '1.0.0', isPreRelease: false, preReleaseId: null });
|
|
92
|
+
assert.deepEqual(parseVersion('1'), { version: '1.0.0', isPreRelease: false, preReleaseId: null });
|
|
93
|
+
assert.deepEqual(parseVersion('1.0'), { version: '1.0.0', isPreRelease: false, preReleaseId: null });
|
|
94
|
+
assert.deepEqual(parseVersion('1.0.0'), { version: '1.0.0', isPreRelease: false, preReleaseId: null });
|
|
95
|
+
assert.deepEqual(parseVersion('1.0.0-0'), { version: '1.0.0-0', isPreRelease: true, preReleaseId: null });
|
|
96
|
+
assert.deepEqual(parseVersion('1.0.0-next.1'), { version: '1.0.0-next.1', isPreRelease: true, preReleaseId: 'next' });
|
|
97
|
+
assert.deepEqual(parseVersion('21.04.1'), { version: '21.04.1', isPreRelease: false, preReleaseId: null });
|
|
97
98
|
});
|
package/test/version.js
CHANGED
|
@@ -1,201 +1,217 @@
|
|
|
1
|
-
import test from '
|
|
2
|
-
import
|
|
1
|
+
import test, { describe } from 'node:test';
|
|
2
|
+
import assert from 'node:assert/strict';
|
|
3
3
|
import Version from '../lib/plugin/version/Version.js';
|
|
4
4
|
import { factory, runTasks } from './util/index.js';
|
|
5
5
|
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
describe('version', () => {
|
|
7
|
+
test('isValidVersion', () => {
|
|
8
|
+
const v = factory(Version);
|
|
9
|
+
assert.equal(v.isValid('1.0.0'), true);
|
|
10
|
+
assert.equal(v.isValid(1.0), false);
|
|
11
|
+
});
|
|
11
12
|
|
|
12
|
-
test('isPreRelease',
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
});
|
|
13
|
+
test('isPreRelease', () => {
|
|
14
|
+
const v = factory(Version);
|
|
15
|
+
assert.equal(v.isPreRelease('1.0.0-beta.0'), true);
|
|
16
|
+
assert.equal(v.isPreRelease('1.0.0'), false);
|
|
17
|
+
});
|
|
17
18
|
|
|
18
|
-
test('should return the same version in both interactive and ci mode', async
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
});
|
|
19
|
+
test('should return the same version in both interactive and ci mode', async () => {
|
|
20
|
+
const v = factory(Version);
|
|
21
|
+
const options = { latestVersion: '2.0.0-beta.1', increment: null, preReleaseId: 'rc', isPreRelease: true };
|
|
22
|
+
const resultInteractiveMode = await v.getIncrementedVersion(options);
|
|
23
|
+
assert.equal(resultInteractiveMode, '2.0.0-rc.0');
|
|
24
|
+
const resultCiMode = v.getIncrementedVersionCI(options);
|
|
25
|
+
assert.equal(resultInteractiveMode, resultCiMode);
|
|
26
|
+
});
|
|
26
27
|
|
|
27
|
-
test('should increment latest version',
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
});
|
|
28
|
+
test('should increment latest version', () => {
|
|
29
|
+
const v = factory(Version);
|
|
30
|
+
const latestVersion = '1.0.0';
|
|
31
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: false }), '1.0.0');
|
|
32
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: 'foo' }), undefined);
|
|
33
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: 'patsj' }), undefined);
|
|
34
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: 'a.b.c' }), undefined);
|
|
35
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: '0.9.0' }), undefined);
|
|
36
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: '1.1.0' }), '1.1.0');
|
|
37
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: 'major' }), '2.0.0');
|
|
38
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: '2.0.0-beta.1' }), '2.0.0-beta.1');
|
|
39
|
+
});
|
|
39
40
|
|
|
40
|
-
test('should not increment latest version in interactive mode',
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
});
|
|
41
|
+
test('should not increment latest version in interactive mode', () => {
|
|
42
|
+
const v = factory(Version, { options: { ci: false } });
|
|
43
|
+
const latestVersion = '1.0.0';
|
|
44
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: null }), undefined);
|
|
45
|
+
assert.equal(v.incrementVersion({ latestVersion, increment: false }), '1.0.0');
|
|
46
|
+
});
|
|
46
47
|
|
|
47
|
-
test('should always set increment version in CI mode',
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
});
|
|
48
|
+
test('should always set increment version in CI mode', () => {
|
|
49
|
+
const v = factory(Version, { options: { ci: true } });
|
|
50
|
+
const latestVersion = '1.0.0';
|
|
51
|
+
assert.equal(v.getIncrementedVersionCI({ latestVersion, increment: false }), '1.0.0');
|
|
52
|
+
assert.equal(v.getIncrementedVersionCI({ latestVersion, increment: null }), '1.0.1');
|
|
53
|
+
assert.equal(v.getIncrementedVersionCI({ latestVersion, increment: '1.1.0' }), '1.1.0');
|
|
54
|
+
assert.equal(v.getIncrementedVersionCI({ latestVersion, increment: 'major' }), '2.0.0');
|
|
55
|
+
});
|
|
55
56
|
|
|
56
|
-
test('should increment latest version (coerce)',
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
});
|
|
57
|
+
test('should increment latest version (coerce)', () => {
|
|
58
|
+
const v = factory(Version);
|
|
59
|
+
assert.equal(v.incrementVersion({ increment: '1.2' }), '1.2.0');
|
|
60
|
+
assert.equal(v.incrementVersion({ increment: '1' }), '1.0.0');
|
|
61
|
+
assert.equal(v.incrementVersion({ increment: 'v1.2.0.0' }), '1.2.0');
|
|
62
|
+
});
|
|
62
63
|
|
|
63
|
-
test('should increment version (pre-release continuation)',
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
});
|
|
64
|
+
test('should increment version (pre-release continuation)', () => {
|
|
65
|
+
const v = factory(Version);
|
|
66
|
+
assert.equal(v.incrementVersion({ latestVersion: '1.2.3-alpha.0', increment: 'prepatch' }), '1.2.4-0');
|
|
67
|
+
});
|
|
67
68
|
|
|
68
|
-
test('should increment version (prepatch)',
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
})
|
|
69
|
+
test('should increment version (prepatch)', () => {
|
|
70
|
+
const v = factory(Version);
|
|
71
|
+
assert.equal(
|
|
72
|
+
v.incrementVersion({ latestVersion: '1.2.3', increment: 'prepatch', preReleaseId: 'alpha' }),
|
|
73
|
+
'1.2.4-alpha.0'
|
|
74
|
+
);
|
|
75
|
+
});
|
|
72
76
|
|
|
73
|
-
test('should increment version (normalized)',
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
});
|
|
77
|
+
test('should increment version (normalized)', () => {
|
|
78
|
+
const v = factory(Version);
|
|
79
|
+
assert.equal(
|
|
80
|
+
v.incrementVersion({ latestVersion: '1.2.3', increment: 'patch', preReleaseId: 'alpha', isPreRelease: true }),
|
|
81
|
+
'1.2.4-alpha.0'
|
|
82
|
+
);
|
|
83
|
+
});
|
|
80
84
|
|
|
81
|
-
test('should increment version (prepatch on prerelease version)',
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
});
|
|
85
|
+
test('should increment version (prepatch on prerelease version)', () => {
|
|
86
|
+
const v = factory(Version);
|
|
87
|
+
assert.equal(
|
|
88
|
+
v.incrementVersion({ latestVersion: '1.2.3-alpha.5', increment: 'prepatch', preReleaseId: 'next' }),
|
|
89
|
+
'1.2.4-next.0'
|
|
90
|
+
);
|
|
91
|
+
});
|
|
88
92
|
|
|
89
|
-
test('should increment version (normalized on prerelease version)',
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
});
|
|
93
|
+
test('should increment version (normalized on prerelease version)', () => {
|
|
94
|
+
const v = factory(Version);
|
|
95
|
+
assert.equal(
|
|
96
|
+
v.incrementVersion({
|
|
97
|
+
latestVersion: '1.2.3-alpha.5',
|
|
98
|
+
increment: 'patch',
|
|
99
|
+
preReleaseId: 'next',
|
|
100
|
+
isPreRelease: true
|
|
101
|
+
}),
|
|
102
|
+
'1.2.4-next.0'
|
|
103
|
+
);
|
|
104
|
+
});
|
|
101
105
|
|
|
102
|
-
test('should increment version (prerelease)',
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
})
|
|
106
|
+
test('should increment version (prerelease)', () => {
|
|
107
|
+
const v = factory(Version);
|
|
108
|
+
assert.equal(
|
|
109
|
+
v.incrementVersion({ latestVersion: '1.2.3', increment: 'prerelease', preReleaseId: 'alpha' }),
|
|
110
|
+
'1.2.4-alpha.0'
|
|
111
|
+
);
|
|
112
|
+
});
|
|
106
113
|
|
|
107
|
-
test('should increment version (prerelease cont.)',
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
});
|
|
114
|
+
test('should increment version (prerelease cont.)', () => {
|
|
115
|
+
const v = factory(Version);
|
|
116
|
+
assert.equal(v.incrementVersion({ latestVersion: '1.2.3-alpha.0', increment: 'prerelease' }), '1.2.3-alpha.1');
|
|
117
|
+
});
|
|
111
118
|
|
|
112
|
-
test('should increment version (preReleaseId continuation)',
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
});
|
|
119
|
+
test('should increment version (preReleaseId continuation)', () => {
|
|
120
|
+
const v = factory(Version);
|
|
121
|
+
assert.equal(
|
|
122
|
+
v.incrementVersion({ latestVersion: '1.2.3-alpha.0', increment: 'prerelease', preReleaseId: 'alpha' }),
|
|
123
|
+
'1.2.3-alpha.1'
|
|
124
|
+
);
|
|
125
|
+
});
|
|
119
126
|
|
|
120
|
-
test('should increment version (prepatch/preReleaseId continuation)',
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
127
|
+
test('should increment version (prepatch/preReleaseId continuation)', () => {
|
|
128
|
+
const v = factory(Version);
|
|
129
|
+
const options = {
|
|
130
|
+
latestVersion: '1.2.3-beta.0',
|
|
131
|
+
increment: 'prerelease',
|
|
132
|
+
preReleaseId: 'beta',
|
|
133
|
+
isPreRelease: true
|
|
134
|
+
};
|
|
135
|
+
assert.equal(v.incrementVersion(options), '1.2.3-beta.1');
|
|
136
|
+
});
|
|
125
137
|
|
|
126
|
-
test('should increment version (preReleaseId w/o preRelease)',
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
})
|
|
138
|
+
test('should increment version (preReleaseId w/o preRelease)', () => {
|
|
139
|
+
const v = factory(Version);
|
|
140
|
+
assert.equal(
|
|
141
|
+
v.incrementVersion({ latestVersion: '1.2.3-alpha.0', increment: 'patch', preReleaseId: 'alpha' }),
|
|
142
|
+
'1.2.3'
|
|
143
|
+
);
|
|
144
|
+
});
|
|
130
145
|
|
|
131
|
-
test('should increment version (non-numeric prepatch continuation)',
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
});
|
|
146
|
+
test('should increment version (non-numeric prepatch continuation)', () => {
|
|
147
|
+
const v = factory(Version);
|
|
148
|
+
assert.equal(v.incrementVersion({ latestVersion: '1.2.3-alpha', increment: 'prerelease' }), '1.2.3-alpha.0');
|
|
149
|
+
});
|
|
135
150
|
|
|
136
|
-
test('should increment version (patch release after pre-release)',
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
});
|
|
151
|
+
test('should increment version (patch release after pre-release)', () => {
|
|
152
|
+
const v = factory(Version);
|
|
153
|
+
assert.equal(v.incrementVersion({ latestVersion: '1.2.3-alpha.1', increment: 'patch' }), '1.2.3');
|
|
154
|
+
});
|
|
140
155
|
|
|
141
|
-
test('should increment version and start at base 1',
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
});
|
|
156
|
+
test('should increment version and start at base 1', () => {
|
|
157
|
+
const v = factory(Version);
|
|
158
|
+
assert.equal(
|
|
159
|
+
v.incrementVersion({
|
|
160
|
+
latestVersion: '1.3.0',
|
|
161
|
+
increment: 'major',
|
|
162
|
+
isPreRelease: true,
|
|
163
|
+
preReleaseId: 'beta',
|
|
164
|
+
preReleaseBase: '1'
|
|
165
|
+
}),
|
|
166
|
+
'2.0.0-beta.1'
|
|
167
|
+
);
|
|
168
|
+
});
|
|
154
169
|
|
|
155
|
-
test('should increment prerelease version and ignore prelease base 1',
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
});
|
|
170
|
+
test('should increment prerelease version and ignore prelease base 1', () => {
|
|
171
|
+
const v = factory(Version);
|
|
172
|
+
assert.equal(
|
|
173
|
+
v.incrementVersion({
|
|
174
|
+
latestVersion: '1.2.3-alpha.5',
|
|
175
|
+
increment: 'prerelease',
|
|
176
|
+
preReleaseId: 'alpha',
|
|
177
|
+
isPreRelease: true,
|
|
178
|
+
preReleaseBase: '1'
|
|
179
|
+
}),
|
|
180
|
+
'1.2.3-alpha.6'
|
|
181
|
+
);
|
|
182
|
+
});
|
|
168
183
|
|
|
169
|
-
test('should run tasks without errors', async t => {
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
184
|
+
test('should run tasks without errors', async t => {
|
|
185
|
+
const options = { version: { increment: 'minor' } };
|
|
186
|
+
const v = factory(Version, { options });
|
|
187
|
+
const getIncrement = t.mock.method(v, 'getIncrement');
|
|
188
|
+
const getIncrementedVersionCI = t.mock.method(v, 'getIncrementedVersionCI');
|
|
189
|
+
const incrementVersion = t.mock.method(v, 'incrementVersion');
|
|
190
|
+
|
|
191
|
+
await runTasks(v);
|
|
192
|
+
|
|
193
|
+
assert.equal(getIncrement.mock.callCount(), 1);
|
|
194
|
+
assert.deepEqual(getIncrement.mock.calls[0].arguments[0], { increment: 'minor' });
|
|
195
|
+
assert.equal(getIncrementedVersionCI.mock.callCount(), 1);
|
|
196
|
+
assert.deepEqual(getIncrementedVersionCI.mock.calls[0].arguments[0], {
|
|
197
|
+
latestVersion: '1.0.0',
|
|
198
|
+
increment: 'minor',
|
|
199
|
+
isPreRelease: false,
|
|
200
|
+
preReleaseId: null
|
|
201
|
+
});
|
|
202
|
+
assert.equal(await incrementVersion.mock.calls[0].result, '1.1.0');
|
|
203
|
+
assert.equal(incrementVersion.mock.callCount(), 1);
|
|
204
|
+
assert.deepEqual(incrementVersion.mock.calls[0].arguments[0], {
|
|
205
|
+
latestVersion: '1.0.0',
|
|
206
|
+
increment: 'minor',
|
|
207
|
+
isPreRelease: false,
|
|
208
|
+
preReleaseId: null
|
|
209
|
+
});
|
|
210
|
+
assert.equal(incrementVersion.mock.calls[0].result, '1.1.0');
|
|
211
|
+
const { latestVersion, version, isPreRelease, preReleaseId } = v.config.getContext();
|
|
212
|
+
assert.equal(latestVersion, '1.0.0');
|
|
213
|
+
assert.equal(version, '1.1.0');
|
|
214
|
+
assert.equal(isPreRelease, false);
|
|
215
|
+
assert.equal(preReleaseId, null);
|
|
216
|
+
});
|
|
201
217
|
});
|
package/test/util/setup.js
DELETED