@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.
Files changed (111) hide show
  1. package/build/lib/Logger.js +1 -1
  2. package/build/lib/Logger.js.map +1 -1
  3. package/build/lib/Logger.test.js +3 -3
  4. package/build/lib/Logger.test.js.map +1 -1
  5. package/build/lib/Timer.d.ts +6 -0
  6. package/build/lib/Timer.d.ts.map +1 -0
  7. package/build/lib/Timer.js +13 -0
  8. package/build/lib/Timer.js.map +1 -0
  9. package/build/lib/contexts.d.ts +3 -1
  10. package/build/lib/contexts.d.ts.map +1 -1
  11. package/build/lib/contexts.js +7 -0
  12. package/build/lib/contexts.js.map +1 -1
  13. package/build/lib/defs.d.ts +66 -17
  14. package/build/lib/defs.d.ts.map +1 -1
  15. package/build/lib/defs.js +14 -1
  16. package/build/lib/defs.js.map +1 -1
  17. package/build/lib/domain.d.ts +3 -3
  18. package/build/lib/domain.d.ts.map +1 -1
  19. package/build/lib/domain.js.map +1 -1
  20. package/build/lib/features.test.js +24 -23
  21. package/build/lib/features.test.js.map +1 -1
  22. package/build/lib/interfaces/logger.d.ts +5 -1
  23. package/build/lib/interfaces/logger.d.ts.map +1 -1
  24. package/build/lib/interfaces/logger.js.map +1 -1
  25. package/build/lib/namedVars.d.ts.map +1 -1
  26. package/build/lib/namedVars.js +3 -3
  27. package/build/lib/namedVars.js.map +1 -1
  28. package/build/lib/namedVars.test.js +5 -5
  29. package/build/lib/namedVars.test.js.map +1 -1
  30. package/build/lib/run-with-options.d.ts +20 -0
  31. package/build/lib/run-with-options.d.ts.map +1 -0
  32. package/build/lib/run-with-options.js +91 -0
  33. package/build/lib/run-with-options.js.map +1 -0
  34. package/build/lib/run.d.ts +19 -12
  35. package/build/lib/run.d.ts.map +1 -1
  36. package/build/lib/run.domains.test.js +14 -14
  37. package/build/lib/run.domains.test.js.map +1 -1
  38. package/build/lib/run.js +26 -16
  39. package/build/lib/run.js.map +1 -1
  40. package/build/lib/run.test.js +24 -28
  41. package/build/lib/run.test.js.map +1 -1
  42. package/build/lib/test/TestSteps.d.ts +45 -0
  43. package/build/lib/test/TestSteps.d.ts.map +1 -0
  44. package/build/lib/test/TestSteps.js +49 -0
  45. package/build/lib/test/TestSteps.js.map +1 -0
  46. package/build/lib/test/TestStepsWithDomain.d.ts +25 -0
  47. package/build/lib/test/TestStepsWithDomain.d.ts.map +1 -0
  48. package/build/lib/test/TestStepsWithDomain.js +19 -0
  49. package/build/lib/test/TestStepsWithDomain.js.map +1 -0
  50. package/build/lib/test/TestStepsWithOptions.d.ts +26 -0
  51. package/build/lib/test/TestStepsWithOptions.d.ts.map +1 -0
  52. package/build/lib/test/TestStepsWithOptions.js +26 -0
  53. package/build/lib/test/TestStepsWithOptions.js.map +1 -0
  54. package/build/lib/{TestSteps.d.ts → test/lib.d.ts} +9 -14
  55. package/build/lib/test/lib.d.ts.map +1 -0
  56. package/build/lib/test/lib.js +88 -0
  57. package/build/lib/test/lib.js.map +1 -0
  58. package/build/lib/util.d.ts +31 -24
  59. package/build/lib/util.d.ts.map +1 -1
  60. package/build/lib/util.js +71 -110
  61. package/build/lib/util.js.map +1 -1
  62. package/build/lib/util.test.js +28 -53
  63. package/build/lib/util.test.js.map +1 -1
  64. package/build/phases/Builder.test.js +4 -4
  65. package/build/phases/Builder.test.js.map +1 -1
  66. package/build/phases/Executor.d.ts +4 -4
  67. package/build/phases/Executor.d.ts.map +1 -1
  68. package/build/phases/Executor.js +22 -8
  69. package/build/phases/Executor.js.map +1 -1
  70. package/build/phases/Resolver.d.ts +3 -3
  71. package/build/phases/Resolver.d.ts.map +1 -1
  72. package/build/phases/Resolver.domains.test.js.map +1 -1
  73. package/build/phases/Resolver.js.map +1 -1
  74. package/build/phases/Resolver.test.js +9 -9
  75. package/build/phases/Resolver.test.js.map +1 -1
  76. package/build/steps/conformance.d.ts +16 -2
  77. package/build/steps/conformance.d.ts.map +1 -1
  78. package/build/steps/conformance.js +3 -1
  79. package/build/steps/conformance.js.map +1 -1
  80. package/build/steps/credentials.d.ts +24 -2
  81. package/build/steps/credentials.d.ts.map +1 -1
  82. package/build/steps/credentials.js +8 -8
  83. package/build/steps/credentials.js.map +1 -1
  84. package/build/steps/haibun.d.ts +33 -2
  85. package/build/steps/haibun.d.ts.map +1 -1
  86. package/build/steps/haibun.js +5 -5
  87. package/build/steps/haibun.js.map +1 -1
  88. package/build/steps/haibun.test.js +2 -3
  89. package/build/steps/haibun.test.js.map +1 -1
  90. package/build/steps/vars.d.ts +73 -2
  91. package/build/steps/vars.d.ts.map +1 -1
  92. package/build/steps/vars.js +16 -13
  93. package/build/steps/vars.js.map +1 -1
  94. package/build/steps/vars.test.js +9 -10
  95. package/build/steps/vars.test.js.map +1 -1
  96. package/package.json +1 -4
  97. package/build/lib/ENV_VARS.d.ts +0 -4
  98. package/build/lib/ENV_VARS.d.ts.map +0 -1
  99. package/build/lib/ENV_VARS.js +0 -13
  100. package/build/lib/ENV_VARS.js.map +0 -1
  101. package/build/lib/TestSteps.d.ts.map +0 -1
  102. package/build/lib/TestSteps.js +0 -169
  103. package/build/lib/TestSteps.js.map +0 -1
  104. package/build/lib/getDefaultWorld.d.ts +0 -1
  105. package/build/lib/getDefaultWorld.d.ts.map +0 -1
  106. package/build/lib/getDefaultWorld.js +0 -2
  107. package/build/lib/getDefaultWorld.js.map +0 -1
  108. package/build/lib/interfaces/webserver.d.ts +0 -9
  109. package/build/lib/interfaces/webserver.d.ts.map +0 -1
  110. package/build/lib/interfaces/webserver.js +0 -3
  111. 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.descTag = exports.getIntOrError = exports.getRunTag = exports.getCaptureDir = exports.applyResShouldContinue = exports.getFromRuntime = exports.getStepper = exports.ensureDirectory = exports.getStepperOption = exports.getStepperOptions = exports.applyExtraOptions = exports.applyEnvCollections = exports.processEnv = exports.sleep = exports.isLowerCase = exports.describeSteppers = exports.getActionable = exports.getOptionsOrDefault = exports.getDefaultOptions = exports.recurse = exports.debase = exports.getSteppers = exports.actionOK = exports.actionNotOK = exports.resultOutput = exports.use = void 0;
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, shared) {
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.getOutput(result, {});
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 getSteppers({ steppers = [], world, addSteppers = [] }) {
71
- const allSteppers = [];
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(world);
86
+ const stepper = new S();
77
87
  allSteppers.push(stepper);
78
88
  }
79
89
  catch (e) {
80
- console.error(`new ${S} from "${loc}" failed`, e, S);
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(world);
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, filter = undefined) {
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, filter));
120
+ all = all.concat(recurse(here, type, featureFilter));
111
121
  }
112
- else if ((!type || file.endsWith(`.${type}`)) && !!(!filter || here.match(filter))) {
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((stepper) => {
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(protoOptions, steppers, world) {
245
- if (!protoOptions.extraOptions) {
184
+ function applyExtraOptions(extraOptions, steppers, world) {
185
+ if (!extraOptions) {
246
186
  return;
247
187
  }
248
- Object.entries(protoOptions.extraOptions).map(([k, v]) => {
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 protoOptions.extraOptions[k];
254
- world.options[k] = conc;
193
+ delete extraOptions[k];
194
+ world.options[k] = conc.result;
255
195
  });
256
- if (Object.keys(protoOptions.extraOptions).length > 0) {
257
- throw Error(`no options provided for ${protoOptions.extraOptions}`);
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 = getPre(stepper) + name;
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(`coudl not create ${base}/${folder}`, e);
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 getStepper(steppers, name) {
245
+ function findStepper(steppers, name) {
298
246
  return steppers.find((s) => s.constructor.name === name);
299
247
  }
300
- exports.getStepper = getStepper;
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 getCaptureDir(tag, app, fn) {
319
- const dir = [process.cwd(), 'capture', tag.sequence, app].join('/');
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 getIntOrError = (val) => {
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
- throw Error(`${val} is not an integer`);
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.getIntOrError = getIntOrError;
343
- const descTag = (tag) => ` @${tag.sequence} (${tag.loop}x${tag.member})`;
344
- exports.descTag = descTag;
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
@@ -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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"}
@@ -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 TestSteps_1 = require("./TestSteps");
24
- const TestSteps_2 = require("./TestSteps");
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 { world } = TestSteps_2.getDefaultWorld(0);
29
- const { result } = await TestSteps_1.testRun('/test/projects/specl/out-default', [TestSteps_1.TestSteps], world);
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, world.shared);
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: [TestSteps_1.TestStepsWithOptions], ...TestSteps_2.getDefaultWorld(0) });
71
- const conc = util.getStepperOptions(TestSteps_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS, 'true', steppers);
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 } = TestSteps_2.getDefaultWorld(0);
76
- const specl = { ...util.getDefaultOptions(), extraOptions: { [TestSteps_1.HAIBUN_O_TESTSTEPSWITHOPTIONS_EXISTS]: 'true' } };
77
- const steppers = await util.getSteppers({ steppers: [], addSteppers: [TestSteps_1.TestStepsWithOptions], ...TestSteps_2.getDefaultWorld(0) });
78
- util.applyExtraOptions(specl, steppers, world);
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 } = TestSteps_2.getDefaultWorld(0);
83
- const specl = { ...util.getDefaultOptions(), extraOptions: { HAIBUN_NE: 'true' } };
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('applyEnvCollections', () => {
96
- it('creates pairs', () => {
97
- const p = { options: { env: {} }, extraOptions: {} };
98
- util.applyEnvCollections('a=1,b=2,a=3,b=4', p);
99
- expect(p.options.env).toEqual({
100
- a: ["1", "3"],
101
- b: ["2", "4"]
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('prevents collision', () => {
105
- const p = { options: { env: { a: 1 } }, extraOptions: {} };
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":"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"}
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 TestSteps_1 = require("../lib/TestSteps");
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(TestSteps_1.getDefaultWorld(0).world);
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(TestSteps_1.getDefaultWorld(0).world);
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(TestSteps_1.getDefaultWorld(0).world, workspace);
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,gDAAmD;AACnD,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,2BAAe,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,2BAAe,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,2BAAe,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjE,6CAA6C;QAC7C,uDAAuD;IACzD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
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 { IStepper, TVStep, TResolvedFeature, TResult, TStepResult, TFeatureResult, TWorld } from '../lib/defs';
1
+ import { TVStep, TResolvedFeature, TResult, TStepResult, TFeatureResult, TWorld, AStepper } from '../lib/defs';
2
2
  export declare class Executor {
3
- steppers: IStepper[];
3
+ steppers: AStepper[];
4
4
  world: TWorld;
5
- constructor(steppers: IStepper[], world: TWorld);
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
- nextFeature(): Promise<void>;
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,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAiB,MAAM,EAAuB,MAAM,aAAa,CAAC;AAInJ,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;IAiBvD,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,CAAC;WA2BtD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAwBxE,SAAS,CAAC,MAAM,EAAE,WAAW;IAS7B,WAAW;IAQX,KAAK;CAQZ"}
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"}
@@ -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
- await this.nextFeature();
23
+ if (!stay) {
24
+ await this.endFeature();
25
+ }
26
+ }
27
+ if (!stay) {
28
+ await this.close();
23
29
  }
24
- await this.close();
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
- actionResults.push({ ...res, name: a.name });
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 nextFeature() {
97
+ async endFeature() {
84
98
  for (const s of this.steppers) {
85
- if (s.nextFeature) {
86
- this.world.logger.debug(`nextFeature ${s.constructor.name}`);
87
- await s.nextFeature();
99
+ if (s.endFeature) {
100
+ this.world.logger.debug(`endFeature ${s.constructor.name}`);
101
+ await s.endFeature();
88
102
  }
89
103
  }
90
104
  }