UNPKG

3.02 kBPlain TextView Raw
1import { readFileSync, writeFileSync } from 'fs';
2
3import { inDirSync, run, setupGitWorkingCopyForTest, shell } from '../test_functions';
4import { assertDotnetPackageVersion, assertNewTagCreated, assertNoNewTagsCreated } from '../assert_functions';
5
6const CSPROJ_FILENAME = 'ProcessEngine.Client.csproj';
7
8function setDotnetPackageVersionAndCommit(filename: string, version: string): void {
9 const contents = readFileSync(filename, { encoding: 'utf-8' });
10 const newContents = contents.replace(/(<Version>)([^<]+)(<\/Version>)/i, `$1${version}$3`);
11 writeFileSync(filename, newContents);
12
13 assertDotnetPackageVersion(filename, version);
14 shell(`git add ${filename}`);
15 shell(`git commit --message "Bump version to ${version}"`);
16}
17
18describe('prepare-version / commit-and-tag-version', () => {
19 it('should work with mode: dotnet', async () => {
20 const gitTempWorkingCopy = setupGitWorkingCopyForTest();
21 inDirSync(gitTempWorkingCopy, () => {
22 shell('git config user.email "process-engine-ci@5minds.de"');
23 shell('git config user.name "Integration Testbot"');
24
25 // alpha
26
27 shell('git checkout alpha');
28 setDotnetPackageVersionAndCommit(CSPROJ_FILENAME, '1.2.1-dev');
29
30 assertNoNewTagsCreated(() => {
31 run('prepare-version --mode dotnet');
32 assertDotnetPackageVersion(CSPROJ_FILENAME, '1.2.1-alpha.11');
33 });
34
35 assertNewTagCreated('v1.2.1-alpha.11', () => {
36 run('commit-and-tag-version --mode dotnet');
37 });
38
39 // beta
40
41 shell('git checkout beta');
42 setDotnetPackageVersionAndCommit(CSPROJ_FILENAME, '1.2.1-dev');
43
44 assertNoNewTagsCreated(() => {
45 run('prepare-version --mode dotnet');
46 assertDotnetPackageVersion(CSPROJ_FILENAME, '1.2.1-beta.1');
47 });
48
49 assertNewTagCreated('v1.2.1-beta.1', () => {
50 run('commit-and-tag-version --mode dotnet');
51 });
52
53 // stable
54
55 shell('git checkout master');
56 setDotnetPackageVersionAndCommit(CSPROJ_FILENAME, '1.2.1-dev');
57
58 assertNoNewTagsCreated(() => {
59 run('prepare-version --mode dotnet');
60 assertDotnetPackageVersion(CSPROJ_FILENAME, '1.2.1');
61 });
62
63 assertNewTagCreated('v1.2.1', () => {
64 run('commit-and-tag-version --mode dotnet');
65 });
66 });
67 });
68
69 it('should change nothing during --dry with mode: dotnet', async () => {
70 const gitTempWorkingCopy = setupGitWorkingCopyForTest();
71 inDirSync(gitTempWorkingCopy, () => {
72 shell('git config user.email "process-engine-ci@5minds.de"');
73 shell('git config user.name "Integration Testbot"');
74
75 // alpha
76
77 shell('git checkout alpha');
78 setDotnetPackageVersionAndCommit(CSPROJ_FILENAME, '1.2.1-dev');
79
80 assertNoNewTagsCreated(() => {
81 run('prepare-version --mode dotnet --dry');
82 assertDotnetPackageVersion(CSPROJ_FILENAME, '1.2.1-dev');
83 run('commit-and-tag-version --mode dotnet --dry');
84 assertDotnetPackageVersion(CSPROJ_FILENAME, '1.2.1-dev');
85 });
86 });
87 });
88});