@haibun/core 1.0.8 → 1.2.1
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/build/lib/Logger.js +1 -1
- package/build/lib/Logger.js.map +1 -1
- package/build/lib/Logger.test.js +3 -3
- package/build/lib/Logger.test.js.map +1 -1
- package/build/lib/Timer.d.ts +6 -0
- package/build/lib/Timer.d.ts.map +1 -0
- package/build/lib/Timer.js +13 -0
- package/build/lib/Timer.js.map +1 -0
- package/build/lib/contexts.d.ts +3 -1
- package/build/lib/contexts.d.ts.map +1 -1
- package/build/lib/contexts.js +7 -0
- package/build/lib/contexts.js.map +1 -1
- package/build/lib/defs.d.ts +66 -17
- package/build/lib/defs.d.ts.map +1 -1
- package/build/lib/defs.js +14 -1
- package/build/lib/defs.js.map +1 -1
- package/build/lib/domain.d.ts +3 -3
- package/build/lib/domain.d.ts.map +1 -1
- package/build/lib/domain.js.map +1 -1
- package/build/lib/features.test.js +24 -23
- package/build/lib/features.test.js.map +1 -1
- package/build/lib/interfaces/logger.d.ts +5 -1
- package/build/lib/interfaces/logger.d.ts.map +1 -1
- package/build/lib/interfaces/logger.js.map +1 -1
- package/build/lib/namedVars.d.ts.map +1 -1
- package/build/lib/namedVars.js +3 -3
- package/build/lib/namedVars.js.map +1 -1
- package/build/lib/namedVars.test.js +5 -5
- package/build/lib/namedVars.test.js.map +1 -1
- package/build/lib/run-with-options.d.ts +20 -0
- package/build/lib/run-with-options.d.ts.map +1 -0
- package/build/lib/run-with-options.js +91 -0
- package/build/lib/run-with-options.js.map +1 -0
- package/build/lib/run.d.ts +19 -12
- package/build/lib/run.d.ts.map +1 -1
- package/build/lib/run.domains.test.js +14 -14
- package/build/lib/run.domains.test.js.map +1 -1
- package/build/lib/run.js +26 -16
- package/build/lib/run.js.map +1 -1
- package/build/lib/run.test.js +24 -28
- package/build/lib/run.test.js.map +1 -1
- package/build/lib/test/TestSteps.d.ts +45 -0
- package/build/lib/test/TestSteps.d.ts.map +1 -0
- package/build/lib/test/TestSteps.js +49 -0
- package/build/lib/test/TestSteps.js.map +1 -0
- package/build/lib/test/TestStepsWithDomain.d.ts +25 -0
- package/build/lib/test/TestStepsWithDomain.d.ts.map +1 -0
- package/build/lib/test/TestStepsWithDomain.js +19 -0
- package/build/lib/test/TestStepsWithDomain.js.map +1 -0
- package/build/lib/test/TestStepsWithOptions.d.ts +26 -0
- package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -0
- package/build/lib/test/TestStepsWithOptions.js +26 -0
- package/build/lib/test/TestStepsWithOptions.js.map +1 -0
- package/build/lib/{TestSteps.d.ts → test/lib.d.ts} +9 -14
- package/build/lib/test/lib.d.ts.map +1 -0
- package/build/lib/test/lib.js +88 -0
- package/build/lib/test/lib.js.map +1 -0
- package/build/lib/util.d.ts +31 -24
- package/build/lib/util.d.ts.map +1 -1
- package/build/lib/util.js +71 -110
- package/build/lib/util.js.map +1 -1
- package/build/lib/util.test.js +28 -53
- package/build/lib/util.test.js.map +1 -1
- package/build/phases/Builder.test.js +4 -4
- package/build/phases/Builder.test.js.map +1 -1
- package/build/phases/Executor.d.ts +4 -4
- package/build/phases/Executor.d.ts.map +1 -1
- package/build/phases/Executor.js +22 -8
- package/build/phases/Executor.js.map +1 -1
- package/build/phases/Resolver.d.ts +3 -3
- package/build/phases/Resolver.d.ts.map +1 -1
- package/build/phases/Resolver.domains.test.js.map +1 -1
- package/build/phases/Resolver.js.map +1 -1
- package/build/phases/Resolver.test.js +9 -9
- package/build/phases/Resolver.test.js.map +1 -1
- package/build/steps/conformance.d.ts +16 -2
- package/build/steps/conformance.d.ts.map +1 -1
- package/build/steps/conformance.js +3 -1
- package/build/steps/conformance.js.map +1 -1
- package/build/steps/credentials.d.ts +24 -2
- package/build/steps/credentials.d.ts.map +1 -1
- package/build/steps/credentials.js +8 -8
- package/build/steps/credentials.js.map +1 -1
- package/build/steps/haibun.d.ts +33 -2
- package/build/steps/haibun.d.ts.map +1 -1
- package/build/steps/haibun.js +5 -5
- package/build/steps/haibun.js.map +1 -1
- package/build/steps/haibun.test.js +2 -3
- package/build/steps/haibun.test.js.map +1 -1
- package/build/steps/vars.d.ts +73 -2
- package/build/steps/vars.d.ts.map +1 -1
- package/build/steps/vars.js +16 -13
- package/build/steps/vars.js.map +1 -1
- package/build/steps/vars.test.js +9 -10
- package/build/steps/vars.test.js.map +1 -1
- package/package.json +1 -4
- package/build/lib/ENV_VARS.d.ts +0 -4
- package/build/lib/ENV_VARS.d.ts.map +0 -1
- package/build/lib/ENV_VARS.js +0 -13
- package/build/lib/ENV_VARS.js.map +0 -1
- package/build/lib/TestSteps.d.ts.map +0 -1
- package/build/lib/TestSteps.js +0 -169
- package/build/lib/TestSteps.js.map +0 -1
- package/build/lib/getDefaultWorld.d.ts +0 -1
- package/build/lib/getDefaultWorld.d.ts.map +0 -1
- package/build/lib/getDefaultWorld.js +0 -2
- package/build/lib/getDefaultWorld.js.map +0 -1
- package/build/lib/interfaces/webserver.d.ts +0 -9
- package/build/lib/interfaces/webserver.d.ts.map +0 -1
- package/build/lib/interfaces/webserver.js +0 -3
- package/build/lib/interfaces/webserver.js.map +0 -1
package/build/lib/util.js
CHANGED
|
@@ -22,10 +22,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
22
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
23
|
};
|
|
24
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
-
exports.
|
|
25
|
+
exports.boolOrError = exports.intOrError = exports.descTag = exports.getRunTag = exports.getCaptureDir = exports.writeTraceFile = exports.applyResShouldContinue = exports.getFromRuntime = exports.findStepper = exports.ensureDirectory = exports.getStepperOption = exports.getStepperOptionName = exports.getStepperOptions = exports.getPre = exports.applyExtraOptions = exports.sleep = exports.isLowerCase = exports.describeSteppers = exports.getActionable = exports.getOptionsOrDefault = exports.getDefaultOptions = exports.shouldProcess = exports.recurse = exports.debase = exports.getSteppers = exports.getStepper = exports.actionOK = exports.actionNotOK = exports.resultOutput = exports.use = void 0;
|
|
26
26
|
const fs_1 = require("fs");
|
|
27
27
|
const path_1 = __importDefault(require("path"));
|
|
28
|
-
const defs_1 = require("./defs");
|
|
29
28
|
const features_1 = require("./features");
|
|
30
29
|
// FIXME tired of wrestling with ts/import issues
|
|
31
30
|
async function use(module) {
|
|
@@ -40,12 +39,12 @@ async function use(module) {
|
|
|
40
39
|
}
|
|
41
40
|
}
|
|
42
41
|
exports.use = use;
|
|
43
|
-
async function resultOutput(type, result
|
|
42
|
+
async function resultOutput(type, result) {
|
|
44
43
|
if (type) {
|
|
45
44
|
const AnOut = await use(type);
|
|
46
45
|
const out = new AnOut();
|
|
47
46
|
if (out) {
|
|
48
|
-
const res = await out.
|
|
47
|
+
const res = await out.writeOutput(result, {});
|
|
49
48
|
return res;
|
|
50
49
|
}
|
|
51
50
|
}
|
|
@@ -67,22 +66,33 @@ function actionOK(topics) {
|
|
|
67
66
|
return { ok: true, topics };
|
|
68
67
|
}
|
|
69
68
|
exports.actionOK = actionOK;
|
|
70
|
-
async function
|
|
71
|
-
|
|
72
|
-
for (const s of steppers) {
|
|
69
|
+
async function getStepper(s) {
|
|
70
|
+
try {
|
|
73
71
|
const loc = getModuleLocation(s);
|
|
74
72
|
const S = await use(loc);
|
|
73
|
+
return S;
|
|
74
|
+
}
|
|
75
|
+
catch (e) {
|
|
76
|
+
console.error(`could not use ${s}`);
|
|
77
|
+
throw (e);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
exports.getStepper = getStepper;
|
|
81
|
+
async function getSteppers({ steppers = [], addSteppers = [] }) {
|
|
82
|
+
const allSteppers = [];
|
|
83
|
+
for (const s of steppers) {
|
|
84
|
+
const S = await getStepper(s);
|
|
75
85
|
try {
|
|
76
|
-
const stepper = new S(
|
|
86
|
+
const stepper = new S();
|
|
77
87
|
allSteppers.push(stepper);
|
|
78
88
|
}
|
|
79
89
|
catch (e) {
|
|
80
|
-
console.error(`new ${S} from "${
|
|
90
|
+
console.error(`new ${S} from "${getModuleLocation(s)}" failed`, e, S);
|
|
81
91
|
throw e;
|
|
82
92
|
}
|
|
83
93
|
}
|
|
84
94
|
for (const S of addSteppers) {
|
|
85
|
-
const stepper = new S(
|
|
95
|
+
const stepper = new S();
|
|
86
96
|
allSteppers.push(stepper);
|
|
87
97
|
}
|
|
88
98
|
return allSteppers;
|
|
@@ -101,21 +111,27 @@ function debase(base, features) {
|
|
|
101
111
|
return features.map((f) => ({ ...f, path: f.path.replace(base, '') }));
|
|
102
112
|
}
|
|
103
113
|
exports.debase = debase;
|
|
104
|
-
function recurse(dir, type,
|
|
114
|
+
function recurse(dir, type, featureFilter = undefined) {
|
|
105
115
|
const files = fs_1.readdirSync(dir);
|
|
106
116
|
let all = [];
|
|
107
117
|
for (const file of files) {
|
|
108
118
|
const here = `${dir}/${file}`;
|
|
109
119
|
if (fs_1.statSync(here).isDirectory()) {
|
|
110
|
-
all = all.concat(recurse(here, type,
|
|
120
|
+
all = all.concat(recurse(here, type, featureFilter));
|
|
111
121
|
}
|
|
112
|
-
else if ((
|
|
122
|
+
else if (shouldProcess(file, type, featureFilter)) {
|
|
113
123
|
all.push(features_1.withNameType(here, fs_1.readFileSync(here, 'utf-8')));
|
|
114
124
|
}
|
|
115
125
|
}
|
|
116
126
|
return all;
|
|
117
127
|
}
|
|
118
128
|
exports.recurse = recurse;
|
|
129
|
+
function shouldProcess(file, type, featureFilter) {
|
|
130
|
+
const isType = (!type || file.endsWith(`.${type}`));
|
|
131
|
+
const matchesFilter = featureFilter ? !!(featureFilter.find(f => file.match(f))) : true;
|
|
132
|
+
return (isType && matchesFilter);
|
|
133
|
+
}
|
|
134
|
+
exports.shouldProcess = shouldProcess;
|
|
119
135
|
function getDefaultOptions() {
|
|
120
136
|
return {
|
|
121
137
|
mode: 'all',
|
|
@@ -149,9 +165,8 @@ function getActionable(value) {
|
|
|
149
165
|
}
|
|
150
166
|
exports.getActionable = getActionable;
|
|
151
167
|
function describeSteppers(steppers) {
|
|
152
|
-
return steppers
|
|
153
|
-
.map((
|
|
154
|
-
return Object.keys(stepper.steps).map((name) => {
|
|
168
|
+
return steppers?.map((stepper) => {
|
|
169
|
+
return stepper.steps && Object.keys(stepper?.steps).map((name) => {
|
|
155
170
|
return `${stepper.constructor.name}:${name}`;
|
|
156
171
|
});
|
|
157
172
|
})
|
|
@@ -165,102 +180,31 @@ function isLowerCase(str) {
|
|
|
165
180
|
exports.isLowerCase = isLowerCase;
|
|
166
181
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
|
167
182
|
exports.sleep = sleep;
|
|
168
|
-
function processEnv(env, options) {
|
|
169
|
-
const protoOptions = { options: { ...options, env: {} }, extraOptions: {} };
|
|
170
|
-
let errors = [];
|
|
171
|
-
const pfx = `${defs_1.HAIBUN}_`;
|
|
172
|
-
const setIntOrError = (val, what) => val.match(/[^\d+]/) ? errors.push(`${what}: integer`) : protoOptions.options[what.toLowerCase()] = parseInt(val, 10);
|
|
173
|
-
Object.entries(env)
|
|
174
|
-
.filter(([k]) => k.startsWith(pfx))
|
|
175
|
-
.map(([k]) => {
|
|
176
|
-
const value = env[k];
|
|
177
|
-
const opt = k.replace(pfx, '');
|
|
178
|
-
if (opt === 'CONTINUE_ON_ERROR_IF_SCORED' && value !== undefined) {
|
|
179
|
-
protoOptions.options.continueOnErrorIfScored = true;
|
|
180
|
-
}
|
|
181
|
-
else if (opt === 'SPLIT_SHARED' && value !== undefined) {
|
|
182
|
-
const [what, s] = value.split('=');
|
|
183
|
-
if (!s) {
|
|
184
|
-
errors.push(` ${pfx}SPLIT_SHARED=var=option1,option2`);
|
|
185
|
-
}
|
|
186
|
-
else {
|
|
187
|
-
protoOptions.options.splits = s.split(',').map((w) => ({ [what]: w }));
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
else if (['STEP_DELAY', 'LOOPS', 'MEMBERS'].includes(opt)) {
|
|
191
|
-
setIntOrError(value, opt);
|
|
192
|
-
}
|
|
193
|
-
else if (opt === 'TRACE') {
|
|
194
|
-
protoOptions.options.trace = true;
|
|
195
|
-
}
|
|
196
|
-
else if (opt === 'CLI') {
|
|
197
|
-
protoOptions.options.cli = true;
|
|
198
|
-
}
|
|
199
|
-
else if (opt === 'STAY') {
|
|
200
|
-
protoOptions.options.stay = value;
|
|
201
|
-
}
|
|
202
|
-
else if (opt === 'LOG_FOLLOW') {
|
|
203
|
-
protoOptions.options.logFollow = value;
|
|
204
|
-
}
|
|
205
|
-
else if (opt === 'LOG_LEVEL') {
|
|
206
|
-
protoOptions.options.logLevel = value;
|
|
207
|
-
}
|
|
208
|
-
else if (opt === 'ENV') {
|
|
209
|
-
const pairs = value?.split(',');
|
|
210
|
-
for (const pair in pairs) {
|
|
211
|
-
const [k, v] = pair.split(',').map(i => i.trim());
|
|
212
|
-
if (protoOptions.options.env[k]) {
|
|
213
|
-
throw Error(`ENV ${k} already exists`);
|
|
214
|
-
}
|
|
215
|
-
protoOptions.options.env[k] = v;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
else if (opt === 'ENVC') {
|
|
219
|
-
applyEnvCollections(value, protoOptions);
|
|
220
|
-
}
|
|
221
|
-
else {
|
|
222
|
-
protoOptions.extraOptions[k] = value;
|
|
223
|
-
}
|
|
224
|
-
});
|
|
225
|
-
return { protoOptions, errors };
|
|
226
|
-
}
|
|
227
|
-
exports.processEnv = processEnv;
|
|
228
|
-
function applyEnvCollections(value, protoOptions) {
|
|
229
|
-
const pairs = new Set(value?.split(',').map(a => a.split('=')[0]));
|
|
230
|
-
for (const pair of pairs) {
|
|
231
|
-
const [k] = Array.from(new Set(pair.split('=')));
|
|
232
|
-
if (protoOptions.options.env[k]) {
|
|
233
|
-
throw Error(`ENVC ${k} already exists`);
|
|
234
|
-
}
|
|
235
|
-
protoOptions.options.env[k] = [];
|
|
236
|
-
}
|
|
237
|
-
for (const pair of value?.split(',')) {
|
|
238
|
-
const [k, v] = pair.split('=');
|
|
239
|
-
protoOptions.options.env[k].push(v);
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
exports.applyEnvCollections = applyEnvCollections;
|
|
243
183
|
// has side effects
|
|
244
|
-
function applyExtraOptions(
|
|
245
|
-
if (!
|
|
184
|
+
function applyExtraOptions(extraOptions, steppers, world) {
|
|
185
|
+
if (!extraOptions) {
|
|
246
186
|
return;
|
|
247
187
|
}
|
|
248
|
-
Object.entries(
|
|
188
|
+
Object.entries(extraOptions).map(([k, v]) => {
|
|
249
189
|
const conc = getStepperOptions(k, v, steppers);
|
|
250
190
|
if (conc === undefined) {
|
|
251
191
|
throw Error(`no option ${k}`);
|
|
252
192
|
}
|
|
253
|
-
delete
|
|
254
|
-
world.options[k] = conc;
|
|
193
|
+
delete extraOptions[k];
|
|
194
|
+
world.options[k] = conc.result;
|
|
255
195
|
});
|
|
256
|
-
if (Object.keys(
|
|
257
|
-
throw Error(`no options provided for ${
|
|
196
|
+
if (Object.keys(extraOptions).length > 0) {
|
|
197
|
+
throw Error(`no options provided for ${extraOptions}`);
|
|
198
|
+
}
|
|
199
|
+
for (const stepper of steppers) {
|
|
200
|
+
stepper.setWorld && stepper.setWorld(world);
|
|
258
201
|
}
|
|
259
202
|
}
|
|
260
203
|
exports.applyExtraOptions = applyExtraOptions;
|
|
261
204
|
function getPre(stepper) {
|
|
262
205
|
return ['HAIBUN', 'O', stepper.constructor.name.toUpperCase()].join('_') + '_';
|
|
263
206
|
}
|
|
207
|
+
exports.getPre = getPre;
|
|
264
208
|
function getStepperOptions(key, value, steppers) {
|
|
265
209
|
for (const stepper of steppers) {
|
|
266
210
|
const pre = getPre(stepper);
|
|
@@ -271,8 +215,12 @@ function getStepperOptions(key, value, steppers) {
|
|
|
271
215
|
}
|
|
272
216
|
}
|
|
273
217
|
exports.getStepperOptions = getStepperOptions;
|
|
218
|
+
function getStepperOptionName(stepper, name) {
|
|
219
|
+
return getPre(stepper) + name;
|
|
220
|
+
}
|
|
221
|
+
exports.getStepperOptionName = getStepperOptionName;
|
|
274
222
|
function getStepperOption(stepper, name, options) {
|
|
275
|
-
const key =
|
|
223
|
+
const key = getStepperOptionName(stepper, name);
|
|
276
224
|
return options[key];
|
|
277
225
|
}
|
|
278
226
|
exports.getStepperOption = getStepperOption;
|
|
@@ -288,16 +236,16 @@ function ensureDirectory(base, folder) {
|
|
|
288
236
|
}
|
|
289
237
|
}
|
|
290
238
|
catch (e) {
|
|
291
|
-
console.error(`
|
|
239
|
+
console.error(`could not create ${base}/${folder}`, e);
|
|
292
240
|
throw e;
|
|
293
241
|
}
|
|
294
242
|
}
|
|
295
243
|
exports.ensureDirectory = ensureDirectory;
|
|
296
244
|
// FIXME
|
|
297
|
-
function
|
|
245
|
+
function findStepper(steppers, name) {
|
|
298
246
|
return steppers.find((s) => s.constructor.name === name);
|
|
299
247
|
}
|
|
300
|
-
exports.
|
|
248
|
+
exports.findStepper = findStepper;
|
|
301
249
|
function getFromRuntime(runtime, name) {
|
|
302
250
|
return runtime[name];
|
|
303
251
|
}
|
|
@@ -315,8 +263,13 @@ function applyResShouldContinue(world, res, vstep) {
|
|
|
315
263
|
return false;
|
|
316
264
|
}
|
|
317
265
|
exports.applyResShouldContinue = applyResShouldContinue;
|
|
318
|
-
function
|
|
319
|
-
|
|
266
|
+
function writeTraceFile(world, result) {
|
|
267
|
+
fs_1.writeFileSync(getCaptureDir(world, 'trace', 'trace.json'), JSON.stringify(result, null, 2));
|
|
268
|
+
}
|
|
269
|
+
exports.writeTraceFile = writeTraceFile;
|
|
270
|
+
function getCaptureDir(world, app, fn) {
|
|
271
|
+
const capture = world.options.CAPTURE_DIR || 'capture';
|
|
272
|
+
const dir = [process.cwd(), capture, world.tag.sequence, app].join('/');
|
|
320
273
|
if (!fs_1.existsSync(dir)) {
|
|
321
274
|
try {
|
|
322
275
|
fs_1.mkdirSync(dir, { recursive: true });
|
|
@@ -333,13 +286,21 @@ function getCaptureDir(tag, app, fn) {
|
|
|
333
286
|
exports.getCaptureDir = getCaptureDir;
|
|
334
287
|
const getRunTag = (sequence, loop, member, params, trace) => ({ sequence, loop, member, params, trace });
|
|
335
288
|
exports.getRunTag = getRunTag;
|
|
336
|
-
const
|
|
289
|
+
const descTag = (tag) => ` @${tag.sequence} (${tag.loop}x${tag.member})`;
|
|
290
|
+
exports.descTag = descTag;
|
|
291
|
+
const intOrError = (val) => {
|
|
337
292
|
if (val.match(/[^\d+]/)) {
|
|
338
|
-
|
|
293
|
+
return { error: `${val} is not an integer` };
|
|
339
294
|
}
|
|
340
|
-
return parseInt(val, 10);
|
|
295
|
+
return { result: parseInt(val, 10) };
|
|
341
296
|
};
|
|
342
|
-
exports.
|
|
343
|
-
const
|
|
344
|
-
|
|
297
|
+
exports.intOrError = intOrError;
|
|
298
|
+
const boolOrError = (val) => {
|
|
299
|
+
if (val !== 'false' && val !== 'true') {
|
|
300
|
+
return { error: `${val} is not true or false` };
|
|
301
|
+
}
|
|
302
|
+
;
|
|
303
|
+
return { result: val === 'true' };
|
|
304
|
+
};
|
|
305
|
+
exports.boolOrError = boolOrError;
|
|
345
306
|
//# sourceMappingURL=util.js.map
|
package/build/lib/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/lib/util.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/lib/util.ts"],"names":[],"mappings":"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"}
|
package/build/lib/util.test.js
CHANGED
|
@@ -18,17 +18,21 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
18
18
|
__setModuleDefault(result, mod);
|
|
19
19
|
return result;
|
|
20
20
|
};
|
|
21
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
22
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
23
|
+
};
|
|
21
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
25
|
const util = __importStar(require("./util"));
|
|
23
|
-
const
|
|
24
|
-
const
|
|
26
|
+
const lib_1 = require("./test/lib");
|
|
27
|
+
const TestSteps_1 = __importDefault(require("./test/TestSteps"));
|
|
28
|
+
const TestStepsWithOptions_1 = __importDefault(require("./test/TestStepsWithOptions"));
|
|
25
29
|
const features_1 = require("./features");
|
|
26
30
|
describe('output', () => {
|
|
27
31
|
it('resultOutput default', async () => {
|
|
28
|
-
const {
|
|
29
|
-
const { result } = await
|
|
32
|
+
const features = [{ path: '/features/test.feature', content: `When I have a test\nThen the test can fail` }, { path: '/features/test.feature', content: `When I have a test\nThen the test should pass` }];
|
|
33
|
+
const { result, world } = await lib_1.testWithDefaults(features, [TestSteps_1.default]);
|
|
30
34
|
expect(result.ok).toBe(false);
|
|
31
|
-
const output = await util.resultOutput(undefined, result
|
|
35
|
+
const output = await util.resultOutput(undefined, result);
|
|
32
36
|
expect(typeof output).toBe('object');
|
|
33
37
|
expect(result.results?.length).toBe(2);
|
|
34
38
|
});
|
|
@@ -38,50 +42,21 @@ describe('isLowerCase', () => {
|
|
|
38
42
|
expect(util.isLowerCase('A')).toBe(false);
|
|
39
43
|
expect(util.isLowerCase('0')).toBe(false);
|
|
40
44
|
});
|
|
41
|
-
describe('processEnv', () => {
|
|
42
|
-
it('carries extra options', () => {
|
|
43
|
-
const specl = util.getDefaultOptions();
|
|
44
|
-
const { protoOptions } = util.processEnv({ HAIBUN_TEST: 'true' }, specl.options);
|
|
45
|
-
expect(protoOptions.extraOptions['HAIBUN_TEST']).toBeDefined();
|
|
46
|
-
});
|
|
47
|
-
it('split_shared incorrect message', () => {
|
|
48
|
-
const specl = util.getDefaultOptions();
|
|
49
|
-
const { errors } = util.processEnv({ HAIBUN_SPLIT_SHARED: '1,2' }, specl.options);
|
|
50
|
-
expect(errors.length).toBe(1);
|
|
51
|
-
});
|
|
52
|
-
it('processes split_shared', () => {
|
|
53
|
-
const specl = util.getDefaultOptions();
|
|
54
|
-
const { splits } = util.processEnv({ HAIBUN_SPLIT_SHARED: 'foo=1,2' }, specl.options).protoOptions.options;
|
|
55
|
-
expect(splits).toEqual([{ foo: '1' }, { foo: '2' }]);
|
|
56
|
-
});
|
|
57
|
-
it('assigns int', () => {
|
|
58
|
-
const specl = util.getDefaultOptions();
|
|
59
|
-
const { options } = util.processEnv({ HAIBUN_LOOPS: '1' }, specl.options).protoOptions;
|
|
60
|
-
expect(options.loops).toBe(1);
|
|
61
|
-
});
|
|
62
|
-
it('errors for string passed as int', () => {
|
|
63
|
-
const specl = util.getDefaultOptions();
|
|
64
|
-
const { errors } = util.processEnv({ HAIBUN_LOOPS: '1.2' }, specl.options);
|
|
65
|
-
expect(errors.length).toBe(1);
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
45
|
describe('getStepperOptions', () => {
|
|
69
46
|
it('finds stepper options', async () => {
|
|
70
|
-
const steppers = await util.getSteppers({ steppers: [], addSteppers: [
|
|
71
|
-
const conc = util.getStepperOptions(
|
|
47
|
+
const steppers = await util.getSteppers({ steppers: [], addSteppers: [TestStepsWithOptions_1.default], });
|
|
48
|
+
const conc = util.getStepperOptions(lib_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS, 'true', steppers);
|
|
72
49
|
expect(conc).toBeDefined();
|
|
73
50
|
});
|
|
74
51
|
it('fills extra', async () => {
|
|
75
|
-
const { world } =
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
expect(world.options[TestSteps_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]).toBe(42);
|
|
52
|
+
const { world } = lib_1.getDefaultWorld(0);
|
|
53
|
+
const steppers = await util.getSteppers({ steppers: [], addSteppers: [TestStepsWithOptions_1.default], });
|
|
54
|
+
util.applyExtraOptions({ [lib_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]: 'true' }, steppers, world);
|
|
55
|
+
expect(world.options[lib_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]).toEqual(42);
|
|
80
56
|
});
|
|
81
57
|
it('throws for unfilled extra', async () => {
|
|
82
|
-
const { world } =
|
|
83
|
-
|
|
84
|
-
expect(() => util.applyExtraOptions(specl, [], world)).toThrow();
|
|
58
|
+
const { world } = lib_1.getDefaultWorld(0);
|
|
59
|
+
expect(() => util.applyExtraOptions({ HAIBUN_NE: 'true' }, [], world)).toThrow();
|
|
85
60
|
});
|
|
86
61
|
});
|
|
87
62
|
describe('getType', () => {
|
|
@@ -92,18 +67,18 @@ describe('getType', () => {
|
|
|
92
67
|
expect(features_1.withNameType('file.feature', '').type).toBe('feature');
|
|
93
68
|
});
|
|
94
69
|
});
|
|
95
|
-
describe('
|
|
96
|
-
it('
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
70
|
+
describe('shouldProcess', () => {
|
|
71
|
+
it('should process no type & filter', () => {
|
|
72
|
+
expect(util.shouldProcess('hi.feature', undefined, undefined)).toBe(true);
|
|
73
|
+
});
|
|
74
|
+
it('should process matching filter', () => {
|
|
75
|
+
expect(util.shouldProcess('hi.feature', undefined, ['hi'])).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
it('should not process wrong type', () => {
|
|
78
|
+
expect(util.shouldProcess('hi.feature', 'wrong', undefined)).toBe(false);
|
|
103
79
|
});
|
|
104
|
-
it('
|
|
105
|
-
|
|
106
|
-
expect(() => util.applyEnvCollections('a=1', p)).toThrow();
|
|
80
|
+
it('should not process wrong filter', () => {
|
|
81
|
+
expect(util.shouldProcess('hi.feature', undefined, ['wrong'])).toBe(false);
|
|
107
82
|
});
|
|
108
83
|
});
|
|
109
84
|
//# sourceMappingURL=util.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../src/lib/util.test.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"util.test.js","sourceRoot":"","sources":["../../src/lib/util.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const contexts_1 = require("../lib/contexts");
|
|
7
7
|
const defs_1 = require("../lib/defs");
|
|
8
|
-
const
|
|
8
|
+
const lib_1 = require("../lib/test/lib");
|
|
9
9
|
const Builder_1 = __importDefault(require("./Builder"));
|
|
10
10
|
const feature = (result) => ({
|
|
11
11
|
path: 'passes.feature',
|
|
@@ -32,12 +32,12 @@ describe('Builder', () => {
|
|
|
32
32
|
const throws = async () => {
|
|
33
33
|
throw Error('fails');
|
|
34
34
|
};
|
|
35
|
-
const builder = new Builder_1.default(
|
|
35
|
+
const builder = new Builder_1.default(lib_1.getDefaultWorld(0).world);
|
|
36
36
|
// expect(async () => await builder.build([feature(throws)])).rejects.toThrow('fails');
|
|
37
37
|
});
|
|
38
38
|
test('passes', async () => {
|
|
39
39
|
const throws = async () => defs_1.OK;
|
|
40
|
-
const builder = new Builder_1.default(
|
|
40
|
+
const builder = new Builder_1.default(lib_1.getDefaultWorld(0).world);
|
|
41
41
|
// const res = await builder.build([feature(throws)]);
|
|
42
42
|
// expect(res).toBe(OK);
|
|
43
43
|
});
|
|
@@ -45,7 +45,7 @@ describe('Builder', () => {
|
|
|
45
45
|
const finalize = (workspace) => (workspace.set('done', true));
|
|
46
46
|
const finalizes = async () => ({ ...defs_1.OK, finalize });
|
|
47
47
|
const workspace = new contexts_1.WorkspaceContext(`test builder finalizes`);
|
|
48
|
-
const builder = new Builder_1.default(
|
|
48
|
+
const builder = new Builder_1.default(lib_1.getDefaultWorld(0).world, workspace);
|
|
49
49
|
// await builder.build([feature(finalizes)]);
|
|
50
50
|
// expect(workspace['passes.feature'].done).toBe(true);
|
|
51
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Builder.test.js","sourceRoot":"","sources":["../../src/phases/Builder.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAmD;AACnD,sCAA4C;AAC5C,
|
|
1
|
+
{"version":3,"file":"Builder.test.js","sourceRoot":"","sources":["../../src/phases/Builder.test.ts"],"names":[],"mappings":";;;;;AAAA,8CAAmD;AACnD,sCAA4C;AAC5C,yCAAkD;AAClD,wDAAgC;AAEhC,MAAM,OAAO,GAAG,CAAC,MAAW,EAAE,EAAE,CAAC,CAAC;IAChC,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,MAAM;IACf,MAAM,EAAE;QACN;YACE,EAAE,EAAE,MAAM;YACV,GAAG,EAAE,CAAC;YACN,OAAO,EAAE;gBACP;oBACE,IAAI,EAAE,MAAM;oBACZ,IAAI,EAAE;wBACJ,KAAK,EAAE,MAAM;wBACb,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC,SAAE;wBACtB,KAAK,EAAE,MAAM;qBACd;iBACF;aACF;SACF;KACF;CACF,CAAC,CAAC;AAEH,QAAQ,CAAC,SAAS,EAAE,GAAG,EAAE;IACvB,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE;QAClB,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE;YACxB,MAAM,KAAK,CAAC,OAAO,CAAC,CAAC;QACvB,CAAC,CAAC;QACF,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,qBAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtD,uFAAuF;IACzF,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACxB,MAAM,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC,SAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,qBAAe,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACtD,sDAAsD;QACtD,wBAAwB;IAC1B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE;QAC3B,MAAM,QAAQ,GAAc,CAAC,SAA2B,EAAE,EAAE,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;QAC3F,MAAM,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,CAAC,EAAE,GAAG,SAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QACpD,MAAM,SAAS,GAAqB,IAAI,2BAAgB,CAAC,wBAAwB,CAAC,CAAC;QACnF,MAAM,OAAO,GAAG,IAAI,iBAAO,CAAC,qBAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjE,6CAA6C;QAC7C,uDAAuD;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TVStep, TResolvedFeature, TResult, TStepResult, TFeatureResult, TWorld, AStepper } from '../lib/defs';
|
|
2
2
|
export declare class Executor {
|
|
3
|
-
steppers:
|
|
3
|
+
steppers: AStepper[];
|
|
4
4
|
world: TWorld;
|
|
5
|
-
constructor(steppers:
|
|
5
|
+
constructor(steppers: AStepper[], world: TWorld);
|
|
6
6
|
execute(features: TResolvedFeature[]): Promise<TResult>;
|
|
7
7
|
doFeature(feature: TResolvedFeature): Promise<TFeatureResult>;
|
|
8
8
|
static doFeatureStep(vstep: TVStep, world: TWorld): Promise<TStepResult>;
|
|
9
9
|
onFailure(result: TStepResult): Promise<void>;
|
|
10
|
-
|
|
10
|
+
endFeature(): Promise<void>;
|
|
11
11
|
close(): Promise<void>;
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=Executor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Executor.d.ts","sourceRoot":"","sources":["../../src/phases/Executor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,EAA0C,QAAQ,EAAE,MAAM,aAAa,CAAC;AAItK,qBAAa,QAAQ;IACnB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;gBAEF,QAAQ,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM;IAKzC,OAAO,CAAC,QAAQ,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAwBvD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;WA0BtD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAiCxE,SAAS,CAAC,MAAM,EAAE,WAAW;IAS7B,UAAU;IAQV,KAAK;CAQZ"}
|
package/build/phases/Executor.js
CHANGED
|
@@ -10,6 +10,7 @@ class Executor {
|
|
|
10
10
|
}
|
|
11
11
|
async execute(features) {
|
|
12
12
|
let ok = true;
|
|
13
|
+
const stay = (this.world.options.STAY === 'always');
|
|
13
14
|
let featureResults = [];
|
|
14
15
|
// FIXME
|
|
15
16
|
this.world.shared.values._features = features;
|
|
@@ -19,10 +20,14 @@ class Executor {
|
|
|
19
20
|
const featureResult = await this.doFeature(feature);
|
|
20
21
|
ok = ok && featureResult.ok;
|
|
21
22
|
featureResults.push(featureResult);
|
|
22
|
-
|
|
23
|
+
if (!stay) {
|
|
24
|
+
await this.endFeature();
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (!stay) {
|
|
28
|
+
await this.close();
|
|
23
29
|
}
|
|
24
|
-
|
|
25
|
-
return { ok, results: featureResults };
|
|
30
|
+
return { ok, results: featureResults, tag: this.world.tag };
|
|
26
31
|
}
|
|
27
32
|
async doFeature(feature) {
|
|
28
33
|
let ok = true;
|
|
@@ -54,6 +59,7 @@ class Executor {
|
|
|
54
59
|
let actionResults = [];
|
|
55
60
|
// FIXME feature should really be attached ot the vstep
|
|
56
61
|
for (const a of vstep.actions) {
|
|
62
|
+
const start = world.timer.since();
|
|
57
63
|
let res;
|
|
58
64
|
try {
|
|
59
65
|
const namedWithVars = namedVars_1.getNamedToVars(a, world);
|
|
@@ -63,7 +69,15 @@ class Executor {
|
|
|
63
69
|
world.logger.error(caught.stack);
|
|
64
70
|
res = util_1.actionNotOK(`in ${vstep.in}: ${caught.message}`, { topics: { caught: caught.stack.toString() } });
|
|
65
71
|
}
|
|
66
|
-
|
|
72
|
+
let traces;
|
|
73
|
+
if (world.shared.get('_trace')) {
|
|
74
|
+
traces = world.shared.get('_trace');
|
|
75
|
+
world.shared.unset('_trace');
|
|
76
|
+
}
|
|
77
|
+
const end = world.timer.since();
|
|
78
|
+
// FIXME
|
|
79
|
+
const stepResult = { ...res, name: a.name, start, end, traces };
|
|
80
|
+
actionResults.push(stepResult);
|
|
67
81
|
const shouldContinue = util_1.applyResShouldContinue(world, res, a);
|
|
68
82
|
ok = ok && shouldContinue;
|
|
69
83
|
if (!shouldContinue) {
|
|
@@ -80,11 +94,11 @@ class Executor {
|
|
|
80
94
|
}
|
|
81
95
|
}
|
|
82
96
|
}
|
|
83
|
-
async
|
|
97
|
+
async endFeature() {
|
|
84
98
|
for (const s of this.steppers) {
|
|
85
|
-
if (s.
|
|
86
|
-
this.world.logger.debug(`
|
|
87
|
-
await s.
|
|
99
|
+
if (s.endFeature) {
|
|
100
|
+
this.world.logger.debug(`endFeature ${s.constructor.name}`);
|
|
101
|
+
await s.endFeature();
|
|
88
102
|
}
|
|
89
103
|
}
|
|
90
104
|
}
|