@tinymce/beehive-flow
Version:
A CLI tool implementing the beehive flow git branching process
59 lines (50 loc) • 2.29 kB
text/typescript
import { describe, it } from 'mocha';
import { assert } from 'chai';
import * as Git from '../../../main/ts/utils/Git';
import { makeBranchWithPj, beehiveFlow, readPjVersionInDir } from './TestUtils';
describe('Advance', () => {
describe('advance', () => {
const runScenario = async (branchName: string, version: string, arg: string) => {
const hub = await Git.initInTempFolder(true);
const { dir, git } = await Git.cloneInTempFolder(hub.dir);
await makeBranchWithPj(git, branchName, dir, 'test-advance', version);
await beehiveFlow([ 'advance', arg, '--working-dir', dir ]);
await git.pull();
return dir;
};
it('advances main branch in release state', async () => {
const dir = await runScenario('main', '1.2.3', 'main');
await assert.becomes(readPjVersionInDir(dir), '1.2.4-rc');
});
it('advances feature branch in release state', async () => {
const dir = await runScenario('release/6.7', '6.7.0', '6.7');
await assert.becomes(readPjVersionInDir(dir), '6.7.1-rc');
});
});
describe('advance-ci', () => {
const runScenario = async (branchName: string, version: string) => {
const hub = await Git.initInTempFolder(true);
const { dir, git } = await Git.cloneInTempFolder(hub.dir);
await makeBranchWithPj(git, branchName, dir, 'test-advance', version);
await beehiveFlow([ 'advance-ci', '--working-dir', dir ]);
await git.pull();
return dir;
};
it('advances main branch in release state', async () => {
const dir = await runScenario('main', '1.2.3');
await assert.becomes(readPjVersionInDir(dir), '1.2.4-rc');
});
it('does nothing for main branch in rc state', async () => {
const dir = await runScenario('main', '1.2.3-rc');
await assert.becomes(readPjVersionInDir(dir), '1.2.3-rc');
});
it('advances feature branch in release state', async () => {
const dir = await runScenario('release/6.7', '6.7.0');
await assert.becomes(readPjVersionInDir(dir), '6.7.1-rc');
});
it('does nothing for feature branch in rc state', async () => {
const dir = await runScenario('release/6.7', '6.7.78-rc');
await assert.becomes(readPjVersionInDir(dir), '6.7.78-rc');
});
});
});