specmatic 2.11.3 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin/command.line.js
CHANGED
|
@@ -20,7 +20,13 @@ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i
|
|
|
20
20
|
function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
|
|
21
21
|
var callSpecmaticCli = function callSpecmaticCli(args) {
|
|
22
22
|
args = args || process.argv;
|
|
23
|
-
var argv = (0, _yargs["default"])((0, _helpers.hideBin)(args)).
|
|
23
|
+
var argv = (0, _yargs["default"])((0, _helpers.hideBin)(args)).parserConfiguration({
|
|
24
|
+
'camel-case-expansion': false,
|
|
25
|
+
'boolean-negation': false,
|
|
26
|
+
'parse-numbers': false,
|
|
27
|
+
'dot-notation': false,
|
|
28
|
+
'short-option-groups': false
|
|
29
|
+
}).parseSync();
|
|
24
30
|
var _ = argv._,
|
|
25
31
|
$0 = argv.$0,
|
|
26
32
|
namedArgs = _objectWithoutProperties(argv, _excluded);
|
|
@@ -60,4 +66,4 @@ function getJarFunction(operation) {
|
|
|
60
66
|
return _runner.callCore;
|
|
61
67
|
}
|
|
62
68
|
var _default = exports["default"] = callSpecmaticCli;
|
|
63
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfbG9nZ2VyIiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsInJlcXVpcmUiLCJfcnVubmVyIiwiX3lhcmdzIiwiX2hlbHBlcnMiLCJfZXhjbHVkZWQiLCJlIiwiX19lc01vZHVsZSIsIl9zbGljZWRUb0FycmF5IiwiciIsIl9hcnJheVdpdGhIb2xlcyIsIl9pdGVyYWJsZVRvQXJyYXlMaW1pdCIsIl91bnN1cHBvcnRlZEl0ZXJhYmxlVG9BcnJheSIsIl9ub25JdGVyYWJsZVJlc3QiLCJUeXBlRXJyb3IiLCJhIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0IiwidG9TdHJpbmciLCJjYWxsIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibGVuZ3RoIiwibiIsImwiLCJTeW1ib2wiLCJpdGVyYXRvciIsImkiLCJ1IiwiZiIsIm8iLCJuZXh0IiwiT2JqZWN0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImlzQXJyYXkiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXNMb29zZSIsImdldE93blByb3BlcnR5U3ltYm9scyIsImluZGV4T2YiLCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsImhhc093blByb3BlcnR5IiwiY2FsbFNwZWNtYXRpY0NsaSIsImFyZ3MiLCJwcm9jZXNzIiwiYXJndiIsInlhcmdzIiwiaGlkZUJpbiIsInBhcnNlckNvbmZpZ3VyYXRpb24iLCJwYXJzZVN5bmMiLCJfIiwiJDAiLCJuYW1lZEFyZ3MiLCJmbiIsImdldEphckZ1bmN0aW9uIiwiY29tbWFuZCIsImpvaW4iLCJlbnRyaWVzIiwibWFwIiwiX3JlZiIsIl9yZWYyIiwia2V5IiwiY29uY2F0IiwiU3RyaW5nIiwidHJpbSIsImxvZ2dlciIsImluZm8iLCJlcnIiLCJjb2RlIiwiZXhpdENvZGUiLCJtZXNzYWdlIiwiY29uc29sZSIsImxvZyIsIm9wZXJhdGlvbiIsInNwbGljZSIsImNhbGxLYWZrYSIsImNhbGxHcmFwaFFsIiwiY2FsbENvcmUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvYmluL2NvbW1hbmQubGluZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nZ2VyIGZyb20gJy4uL2NvbW1vbi9sb2dnZXInXG5pbXBvcnQgeyBjYWxsS2Fma2EsIGNhbGxDb3JlLCBjYWxsR3JhcGhRbCB9IGZyb20gJy4uL2NvbW1vbi9ydW5uZXInXG5pbXBvcnQgeWFyZ3MgZnJvbSAneWFyZ3MveWFyZ3MnO1xuaW1wb3J0IHsgaGlkZUJpbiB9IGZyb20gJ3lhcmdzL2hlbHBlcnMnO1xuXG5jb25zdCBjYWxsU3BlY21hdGljQ2xpID0gKGFyZ3M/OiBzdHJpbmdbXSkgPT4ge1xuICAgIGFyZ3MgPSBhcmdzIHx8IHByb2Nlc3MuYXJndlxuICAgIGNvbnN0IGFyZ3YgPSB5YXJncyhoaWRlQmluKGFyZ3MpKS5wYXJzZXJDb25maWd1cmF0aW9uKHtcbiAgICAgICAgJ2NhbWVsLWNhc2UtZXhwYW5zaW9uJzogZmFsc2UsXG4gICAgICAgICdib29sZWFuLW5lZ2F0aW9uJzogZmFsc2UsXG4gICAgICAgICdwYXJzZS1udW1iZXJzJzogZmFsc2UsXG4gICAgICAgICdkb3Qtbm90YXRpb24nOiBmYWxzZSxcbiAgICAgICAgJ3Nob3J0LW9wdGlvbi1ncm91cHMnOiBmYWxzZVxuICAgIH0pLnBhcnNlU3luYygpO1xuICAgIGNvbnN0IHsgXywgJDAsIC4uLm5hbWVkQXJncyB9ID0gYXJndjtcbiAgICBjb25zdCBmbiA9IGdldEphckZ1bmN0aW9uKF8pO1xuICAgIGNvbnN0IGNvbW1hbmQgPSAoXy5qb2luKCcgJykgKyAnICcgKyBPYmplY3QuZW50cmllcyhuYW1lZEFyZ3MpLm1hcCgoW2tleSwgdmFsdWVdKSA9PiBgLS0ke2tleX09XCIke1N0cmluZyh2YWx1ZSl9XCJgKS5qb2luKCcgJykpLnRyaW0oKTtcbiAgICBsb2dnZXIuaW5mbyhgQ0xJOiBSdW5uaW5nIHdpdGggYXJncyBcIiR7Y29tbWFuZH1cImApO1xuICAgIGZuKFxuICAgICAgICBjb21tYW5kLFxuICAgICAgICAoZXJyPzogYW55KSA9PiB7XG4gICAgICAgICAgICBpZiAoZXJyKSB7XG4gICAgICAgICAgICAgICAgbG9nZ2VyLmluZm8oJ0NMSTogRmluaXNoZWQgd2l0aCBub24gemVybyBleGl0IGNvZGU6ICcsIGVyci5jb2RlKVxuICAgICAgICAgICAgICAgIHByb2Nlc3MuZXhpdENvZGUgPSBlcnIuY29kZVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsb2dnZXIuaW5mbygnQ0xJOiBGaW5pc2hlZCcpXG4gICAgICAgICAgICAgICAgcHJvY2Vzcy5leGl0Q29kZSA9IDBcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWVzc2FnZSA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgJHttZXNzYWdlfWApXG4gICAgICAgIH1cbiAgICApO1xufVxuXG5mdW5jdGlvbiBnZXRKYXJGdW5jdGlvbihvcGVyYXRpb246IGFueVtdKSB7XG4gICAgaWYob3BlcmF0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgc3dpdGNoIChTdHJpbmcob3BlcmF0aW9uWzBdKSkge1xuICAgICAgICAgICAgY2FzZSAna2Fma2EnOlxuICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5zcGxpY2UoMCwxKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY2FsbEthZmthXG4gICAgICAgICAgICBjYXNlICdncmFwaHFsJzpcbiAgICAgICAgICAgICAgICBvcGVyYXRpb24uc3BsaWNlKDAsMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxHcmFwaFFsXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiBjYWxsQ29yZVxuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBjYWxsQ29yZVxufVxuXG5leHBvcnQgZGVmYXVsdCBjYWxsU3BlY21hdGljQ2xpXG4iXSwibWFw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
|
package/package.json
CHANGED
package/specmatic.jar
CHANGED
|
Binary file
|
|
@@ -55,9 +55,53 @@ test('pass filter arguments to the jar', async () => {
|
|
|
55
55
|
spawn.mockReturnValue(javaProcessMock);
|
|
56
56
|
|
|
57
57
|
jest.spyOn(fs, 'existsSync').mockReturnValue(true);
|
|
58
|
-
const testArgs = ['node', 'index.js', 'test', '*.specmatic',
|
|
58
|
+
const testArgs = ['node', 'index.js', 'test', '*.specmatic','--testBaseURL', 'http://localhost:9000', '--filter="PATH=\'/todos/add\' || STATUS=\'404\'"'];
|
|
59
59
|
callSpecmaticCli(testArgs);
|
|
60
60
|
const specmaticJarPath = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
|
|
61
61
|
expect(spawn.mock.calls[0][1][1]).toBe(`"${path.resolve(specmaticJarPath)}"`);
|
|
62
62
|
expect(spawn.mock.calls[0][1][2]).toBe("test *.specmatic --testBaseURL=\"http://localhost:9000\" --filter=\"PATH='/todos/add' || STATUS='404'\"");
|
|
63
63
|
});
|
|
64
|
+
|
|
65
|
+
test('make sure args are not expanded into camelcase', async () => {
|
|
66
|
+
spawn.mockReturnValue(javaProcessMock);
|
|
67
|
+
|
|
68
|
+
jest.spyOn(fs, 'existsSync').mockReturnValue(true);
|
|
69
|
+
const testArgs = ['node', 'index.js', 'test', '*.specmatic', 'test', '--timeout-in-ms', '10'];
|
|
70
|
+
callSpecmaticCli(testArgs);
|
|
71
|
+
const specmaticJarPath = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
|
|
72
|
+
expect(spawn.mock.calls[0][1][1]).toBe(`"${path.resolve(specmaticJarPath)}"`);
|
|
73
|
+
expect(spawn.mock.calls[0][1][2]).toBe("test *.specmatic test --timeout-in-ms=\"10\"");
|
|
74
|
+
});
|
|
75
|
+
|
|
76
|
+
test('make sure args are not expanded into objects if there is dot', async () => {
|
|
77
|
+
spawn.mockReturnValue(javaProcessMock);
|
|
78
|
+
|
|
79
|
+
jest.spyOn(fs, 'existsSync').mockReturnValue(true);
|
|
80
|
+
const testArgs = ['node', 'index.js', 'test', '*.specmatic', 'test', '--no.foo', '10'];
|
|
81
|
+
callSpecmaticCli(testArgs);
|
|
82
|
+
const specmaticJarPath = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
|
|
83
|
+
expect(spawn.mock.calls[0][1][1]).toBe(`"${path.resolve(specmaticJarPath)}"`);
|
|
84
|
+
expect(spawn.mock.calls[0][1][2]).toBe("test *.specmatic test --no.foo=\"10\"");
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
test('make sure args are not parsed as number if the value is number', async () => {
|
|
88
|
+
spawn.mockReturnValue(javaProcessMock);
|
|
89
|
+
|
|
90
|
+
jest.spyOn(fs, 'existsSync').mockReturnValue(true);
|
|
91
|
+
const testArgs = ['node', 'index.js', 'test', '*.specmatic', 'test', '--foo', '10'];
|
|
92
|
+
callSpecmaticCli(testArgs);
|
|
93
|
+
const specmaticJarPath = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
|
|
94
|
+
expect(spawn.mock.calls[0][1][1]).toBe(`"${path.resolve(specmaticJarPath)}"`);
|
|
95
|
+
expect(spawn.mock.calls[0][1][2]).toBe("test *.specmatic test --foo=\"10\"");
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
test('make sure args are not negated if prefixed with --no ', async () => {
|
|
99
|
+
spawn.mockReturnValue(javaProcessMock);
|
|
100
|
+
|
|
101
|
+
jest.spyOn(fs, 'existsSync').mockReturnValue(true);
|
|
102
|
+
const testArgs = ['node', 'index.js', 'test', '*.specmatic', 'test', '--no-foo', '10'];
|
|
103
|
+
callSpecmaticCli(testArgs);
|
|
104
|
+
const specmaticJarPath = path.resolve(__dirname, '..', '..', '..', specmaticCoreJarName);
|
|
105
|
+
expect(spawn.mock.calls[0][1][1]).toBe(`"${path.resolve(specmaticJarPath)}"`);
|
|
106
|
+
expect(spawn.mock.calls[0][1][2]).toBe("test *.specmatic test --no-foo=\"10\"");
|
|
107
|
+
});
|
package/src/bin/command.line.ts
CHANGED
|
@@ -5,11 +5,16 @@ import { hideBin } from 'yargs/helpers';
|
|
|
5
5
|
|
|
6
6
|
const callSpecmaticCli = (args?: string[]) => {
|
|
7
7
|
args = args || process.argv
|
|
8
|
-
const argv = yargs(hideBin(args)).
|
|
8
|
+
const argv = yargs(hideBin(args)).parserConfiguration({
|
|
9
|
+
'camel-case-expansion': false,
|
|
10
|
+
'boolean-negation': false,
|
|
11
|
+
'parse-numbers': false,
|
|
12
|
+
'dot-notation': false,
|
|
13
|
+
'short-option-groups': false
|
|
14
|
+
}).parseSync();
|
|
9
15
|
const { _, $0, ...namedArgs } = argv;
|
|
10
16
|
const fn = getJarFunction(_);
|
|
11
17
|
const command = (_.join(' ') + ' ' + Object.entries(namedArgs).map(([key, value]) => `--${key}="${String(value)}"`).join(' ')).trim();
|
|
12
|
-
|
|
13
18
|
logger.info(`CLI: Running with args "${command}"`);
|
|
14
19
|
fn(
|
|
15
20
|
command,
|