201 lines
5.8 KiB
TypeScript
201 lines
5.8 KiB
TypeScript
import 'jest-extended';
|
|
import waitForExpect from 'wait-for-expect';
|
|
import { Cli } from 'spring-shell-e2e';
|
|
import {
|
|
nativeDesc,
|
|
jarDesc,
|
|
jarCommand,
|
|
nativeCommand,
|
|
jarOptions,
|
|
waitForExpectDefaultTimeout,
|
|
waitForExpectDefaultInterval,
|
|
testTimeout
|
|
} from '../src/utils';
|
|
|
|
describe('e2e commands arity-boolean-default-true', () => {
|
|
let cli: Cli;
|
|
let command: string;
|
|
let options: string[] = [];
|
|
|
|
/**
|
|
* testBooleanArity1DefaultTrue
|
|
*/
|
|
const annoDefaultWithoutOverwriteReturnsTrueDesc = 'default without overwrite returns true (anno)';
|
|
const annoDefaultWithoutOverwriteCommand = ['e2e', 'anno', 'arity-boolean-default-true'];
|
|
const annoDefaultWithoutOverwriteReturnsTrue = async (cli: Cli) => {
|
|
cli.run();
|
|
await waitForExpect(async () => {
|
|
const screen = cli.screen();
|
|
expect(screen).toEqual(expect.arrayContaining([expect.stringContaining('Hello true')]));
|
|
});
|
|
await expect(cli.exitCode()).resolves.toBe(0);
|
|
};
|
|
|
|
/**
|
|
* testBooleanArity1DefaultTrueRegistration
|
|
*/
|
|
const regDefaultWithoutOverwriteReturnsTrueDesc = 'default without overwrite returns true (reg)';
|
|
const regDefaultWithoutOverwriteCommand = ['e2e', 'reg', 'arity-boolean-default-true'];
|
|
const regOptionalWithoutOverwriteReturnsTrue = async (cli: Cli) => {
|
|
cli.run();
|
|
await waitForExpect(async () => {
|
|
const screen = cli.screen();
|
|
expect(screen).toEqual(expect.arrayContaining([expect.stringContaining('Hello true')]));
|
|
});
|
|
await expect(cli.exitCode()).resolves.toBe(0);
|
|
};
|
|
|
|
/**
|
|
* testBooleanArity1DefaultTrue
|
|
*/
|
|
const annoDefaultWithOverwriteFalseReturnsFalseDesc = 'default with overwrite false returns false (anno)';
|
|
const annoDefaultWithOverwriteFalseCommand = ['e2e', 'anno', 'arity-boolean-default-true', '--overwrite', 'false'];
|
|
const annoDefaultWithOverwriteFalseReturnsFalse = async (cli: Cli) => {
|
|
cli.run();
|
|
await waitForExpect(async () => {
|
|
const screen = cli.screen();
|
|
expect(screen).toEqual(expect.arrayContaining([expect.stringContaining('Hello false')]));
|
|
});
|
|
await expect(cli.exitCode()).resolves.toBe(0);
|
|
};
|
|
|
|
/**
|
|
* testBooleanArity1DefaultTrueRegistration
|
|
*/
|
|
const regDefaultWithOverwriteFalseReturnsFalseDesc = 'default with overwrite false returns false (reg)';
|
|
const regDefaultWithOverwriteFalseCommand = ['e2e', 'reg', 'arity-boolean-default-true', '--overwrite', 'false'];
|
|
const regOptionalWithOverwriteFalseReturnsFalse = async (cli: Cli) => {
|
|
cli.run();
|
|
await waitForExpect(async () => {
|
|
const screen = cli.screen();
|
|
expect(screen).toEqual(expect.arrayContaining([expect.stringContaining('Hello false')]));
|
|
});
|
|
await expect(cli.exitCode()).resolves.toBe(0);
|
|
};
|
|
|
|
beforeEach(async () => {
|
|
waitForExpect.defaults.timeout = waitForExpectDefaultTimeout;
|
|
waitForExpect.defaults.interval = waitForExpectDefaultInterval;
|
|
}, testTimeout);
|
|
|
|
afterEach(async () => {
|
|
cli?.dispose();
|
|
}, testTimeout);
|
|
|
|
/**
|
|
* fatjar commands
|
|
*/
|
|
describe(jarDesc, () => {
|
|
beforeAll(() => {
|
|
command = jarCommand;
|
|
options = jarOptions;
|
|
});
|
|
|
|
it(
|
|
annoDefaultWithoutOverwriteReturnsTrueDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...annoDefaultWithoutOverwriteCommand]
|
|
});
|
|
await annoDefaultWithoutOverwriteReturnsTrue(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
|
|
it(
|
|
regDefaultWithoutOverwriteReturnsTrueDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...regDefaultWithoutOverwriteCommand]
|
|
});
|
|
await regOptionalWithoutOverwriteReturnsTrue(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
|
|
it(
|
|
annoDefaultWithOverwriteFalseReturnsFalseDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...annoDefaultWithOverwriteFalseCommand]
|
|
});
|
|
await annoDefaultWithOverwriteFalseReturnsFalse(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
|
|
it(
|
|
regDefaultWithOverwriteFalseReturnsFalseDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...regDefaultWithOverwriteFalseCommand]
|
|
});
|
|
await regOptionalWithOverwriteFalseReturnsFalse(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
});
|
|
|
|
/**
|
|
* native commands
|
|
*/
|
|
describe(nativeDesc, () => {
|
|
beforeAll(() => {
|
|
command = nativeCommand;
|
|
options = [];
|
|
});
|
|
|
|
it(
|
|
annoDefaultWithoutOverwriteReturnsTrueDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...annoDefaultWithoutOverwriteCommand]
|
|
});
|
|
await annoDefaultWithoutOverwriteReturnsTrue(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
|
|
it(
|
|
regDefaultWithoutOverwriteReturnsTrueDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...regDefaultWithoutOverwriteCommand]
|
|
});
|
|
await regOptionalWithoutOverwriteReturnsTrue(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
|
|
it(
|
|
annoDefaultWithOverwriteFalseReturnsFalseDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...annoDefaultWithOverwriteFalseCommand]
|
|
});
|
|
await annoDefaultWithOverwriteFalseReturnsFalse(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
|
|
it(
|
|
regDefaultWithOverwriteFalseReturnsFalseDesc,
|
|
async () => {
|
|
cli = new Cli({
|
|
command: command,
|
|
options: [...options, ...regDefaultWithOverwriteFalseCommand]
|
|
});
|
|
await regOptionalWithOverwriteFalseReturnsFalse(cli);
|
|
},
|
|
testTimeout
|
|
);
|
|
});
|
|
});
|