UNPKG

1.55 kBJavaScriptView Raw
1#!/usr/bin/env node
2
3/**
4 * Dependencies
5 */
6
7import path from 'path';
8import meow from 'meow';
9import dbg from 'debug';
10import cucumber from 'cucumber';
11import { startMocking } from './cli/rewire.js';
12import Mink from './mink.js';
13
14/**
15 * CLI
16 */
17
18const debug = dbg('mink:cli');
19
20const cli = meow(`
21 Usage: cucumber-mink [options] -- [CUCUMBER ARGS]
22
23 Options:
24 --inject Mink auto-inject in context [Boolean] [default: true]
25 --browser Desired browser name [String] [default: "firefox"]
26 --port Selenium server port [default: 4444]
27 -h, --help Display help message [Boolean]
28 -v, --version Display package version [Boolean]
29`, {
30 default: {
31 inject: true,
32 browser: 'firefox',
33 port: 4444,
34 },
35 boolean: ['inject'],
36 alias: {
37 v: 'version',
38 h: 'help',
39 },
40});
41
42const injectArgs = (flags) => {
43 if (!flags.inject) return [];
44
45 const params = Mink.DEFAULT_PARAMS;
46 params.driver.desiredCapabilities.browserName = flags.browser;
47 params.driver.port = flags.port;
48
49 const inject = require('./cli/support/mink_inject.js');
50 const injectPath = path.join(__dirname, '/cli/support/mink_inject.js');
51 startMocking(injectPath, inject(params));
52
53 return ['--require', injectPath];
54};
55
56const execArgs = [
57 'node', 'cucumber-js',
58 ...injectArgs(cli.flags),
59 ...cli.input,
60];
61
62debug(execArgs);
63
64cucumber.Cli(execArgs).run((success) => {
65 process.exit(success ? 0 : 1);
66});