1 | import { readFileSync, writeFileSync } from 'fs';
|
2 |
|
3 | import { inDirSync, run, setupGitWorkingCopyForTest, shell } from '../test_functions';
|
4 | import { assertDotnetPackageVersion, assertNewTagCreated, assertNoNewTagsCreated } from '../assert_functions';
|
5 |
|
6 | const CSPROJ_FILENAME = 'ProcessEngine.Client.csproj';
|
7 |
|
8 | function 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 |
|
18 | describe('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 |
|
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 |
|
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 |
|
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 |
|
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 | });
|