@elastic/synthetics 1.0.0-beta.4 → 1.0.0-beta.41

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 (220) hide show
  1. package/README.md +4 -3
  2. package/dist/cli.js +137 -160
  3. package/dist/cli.js.map +1 -1
  4. package/dist/common_types.d.ts +161 -31
  5. package/dist/common_types.d.ts.map +1 -1
  6. package/dist/config.d.ts +3 -5
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +7 -6
  9. package/dist/config.js.map +1 -1
  10. package/dist/core/browser-service.d.ts +1 -1
  11. package/dist/core/browser-service.d.ts.map +1 -1
  12. package/dist/core/browser-service.js +7 -6
  13. package/dist/core/browser-service.js.map +1 -1
  14. package/dist/core/expect.d.ts +25 -25
  15. package/dist/core/expect.d.ts.map +1 -1
  16. package/dist/core/expect.js.map +1 -1
  17. package/dist/core/gatherer.d.ts +4 -8
  18. package/dist/core/gatherer.d.ts.map +1 -1
  19. package/dist/core/gatherer.js +53 -15
  20. package/dist/core/gatherer.js.map +1 -1
  21. package/dist/core/index.d.ts +5 -1
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +23 -11
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/core/logger.d.ts +0 -1
  26. package/dist/core/logger.d.ts.map +1 -1
  27. package/dist/core/logger.js +3 -16
  28. package/dist/core/logger.js.map +1 -1
  29. package/dist/core/runner.d.ts +12 -63
  30. package/dist/core/runner.d.ts.map +1 -1
  31. package/dist/core/runner.js +156 -90
  32. package/dist/core/runner.js.map +1 -1
  33. package/dist/core/transform.d.ts +37 -0
  34. package/dist/core/transform.d.ts.map +1 -0
  35. package/dist/core/transform.js +148 -0
  36. package/dist/core/transform.js.map +1 -0
  37. package/dist/dsl/index.js +5 -1
  38. package/dist/dsl/index.js.map +1 -1
  39. package/dist/dsl/journey.d.ts +9 -4
  40. package/dist/dsl/journey.d.ts.map +1 -1
  41. package/dist/dsl/journey.js +37 -9
  42. package/dist/dsl/journey.js.map +1 -1
  43. package/dist/dsl/monitor.d.ts +83 -0
  44. package/dist/dsl/monitor.d.ts.map +1 -0
  45. package/dist/dsl/monitor.js +108 -0
  46. package/dist/dsl/monitor.js.map +1 -0
  47. package/dist/dsl/step.d.ts +3 -2
  48. package/dist/dsl/step.d.ts.map +1 -1
  49. package/dist/dsl/step.js +6 -1
  50. package/dist/dsl/step.js.map +1 -1
  51. package/dist/formatter/javascript.d.ts +98 -0
  52. package/dist/formatter/javascript.d.ts.map +1 -0
  53. package/dist/formatter/javascript.js +298 -0
  54. package/dist/formatter/javascript.js.map +1 -0
  55. package/dist/generator/index.d.ts +24 -0
  56. package/dist/generator/index.d.ts.map +1 -0
  57. package/dist/generator/index.js +241 -0
  58. package/dist/generator/index.js.map +1 -0
  59. package/dist/{reporters/reporter.js → generator/utils.d.ts} +5 -3
  60. package/dist/generator/utils.d.ts.map +1 -0
  61. package/dist/generator/utils.js +84 -0
  62. package/dist/generator/utils.js.map +1 -0
  63. package/dist/helpers.d.ts +28 -3
  64. package/dist/helpers.d.ts.map +1 -1
  65. package/dist/helpers.js +152 -20
  66. package/dist/helpers.js.map +1 -1
  67. package/dist/index.d.ts +6 -7
  68. package/dist/index.d.ts.map +1 -1
  69. package/dist/index.js +5 -26
  70. package/dist/index.js.map +1 -1
  71. package/dist/loader.d.ts +34 -0
  72. package/dist/loader.d.ts.map +1 -0
  73. package/dist/loader.js +149 -0
  74. package/dist/loader.js.map +1 -0
  75. package/dist/locations/index.d.ts +45 -0
  76. package/dist/locations/index.d.ts.map +1 -0
  77. package/dist/locations/index.js +83 -0
  78. package/dist/locations/index.js.map +1 -0
  79. package/dist/{reporters/reporter.d.ts → locations/public-locations.d.ts} +12 -8
  80. package/dist/locations/public-locations.d.ts.map +1 -0
  81. package/dist/locations/public-locations.js +41 -0
  82. package/dist/locations/public-locations.js.map +1 -0
  83. package/dist/options.d.ts +41 -0
  84. package/dist/options.d.ts.map +1 -0
  85. package/dist/options.js +198 -0
  86. package/dist/options.js.map +1 -0
  87. package/dist/plugins/browser-console.d.ts +5 -4
  88. package/dist/plugins/browser-console.d.ts.map +1 -1
  89. package/dist/plugins/browser-console.js +44 -24
  90. package/dist/plugins/browser-console.js.map +1 -1
  91. package/dist/plugins/index.js +5 -1
  92. package/dist/plugins/index.js.map +1 -1
  93. package/dist/plugins/network.d.ts +20 -33
  94. package/dist/plugins/network.d.ts.map +1 -1
  95. package/dist/plugins/network.js +177 -216
  96. package/dist/plugins/network.js.map +1 -1
  97. package/dist/plugins/performance.d.ts +4 -19
  98. package/dist/plugins/performance.d.ts.map +1 -1
  99. package/dist/plugins/performance.js +6 -5
  100. package/dist/plugins/performance.js.map +1 -1
  101. package/dist/plugins/plugin-manager.d.ts +9 -5
  102. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  103. package/dist/plugins/plugin-manager.js +46 -30
  104. package/dist/plugins/plugin-manager.js.map +1 -1
  105. package/dist/plugins/tracing.d.ts +6 -6
  106. package/dist/plugins/tracing.d.ts.map +1 -1
  107. package/dist/plugins/tracing.js +10 -7
  108. package/dist/plugins/tracing.js.map +1 -1
  109. package/dist/push/bundler.d.ts +35 -0
  110. package/dist/push/bundler.d.ts.map +1 -0
  111. package/dist/push/bundler.js +131 -0
  112. package/dist/push/bundler.js.map +1 -0
  113. package/dist/push/index.d.ts +9 -0
  114. package/dist/push/index.d.ts.map +1 -0
  115. package/dist/push/index.js +227 -0
  116. package/dist/push/index.js.map +1 -0
  117. package/dist/push/kibana_api.d.ts +56 -0
  118. package/dist/push/kibana_api.d.ts.map +1 -0
  119. package/dist/push/kibana_api.js +135 -0
  120. package/dist/push/kibana_api.js.map +1 -0
  121. package/dist/push/monitor.d.ts +51 -0
  122. package/dist/push/monitor.d.ts.map +1 -0
  123. package/dist/push/monitor.js +244 -0
  124. package/dist/push/monitor.js.map +1 -0
  125. package/dist/{parse_args.d.ts → push/plugin.d.ts} +9 -6
  126. package/dist/push/plugin.d.ts.map +1 -0
  127. package/dist/push/plugin.js +66 -0
  128. package/dist/push/plugin.js.map +1 -0
  129. package/dist/push/request.d.ts +45 -0
  130. package/dist/push/request.d.ts.map +1 -0
  131. package/dist/push/request.js +109 -0
  132. package/dist/push/request.js.map +1 -0
  133. package/dist/push/utils.d.ts +31 -0
  134. package/dist/push/utils.d.ts.map +1 -0
  135. package/dist/push/utils.js +64 -0
  136. package/dist/push/utils.js.map +1 -0
  137. package/dist/reporters/base.d.ts +14 -6
  138. package/dist/reporters/base.d.ts.map +1 -1
  139. package/dist/reporters/base.js +58 -50
  140. package/dist/reporters/base.js.map +1 -1
  141. package/dist/reporters/index.d.ts +18 -8
  142. package/dist/reporters/index.d.ts.map +1 -1
  143. package/dist/reporters/index.js.map +1 -1
  144. package/dist/reporters/json.d.ts +17 -62
  145. package/dist/reporters/json.d.ts.map +1 -1
  146. package/dist/reporters/json.js +149 -179
  147. package/dist/reporters/json.js.map +1 -1
  148. package/dist/reporters/junit.d.ts +7 -1
  149. package/dist/reporters/junit.d.ts.map +1 -1
  150. package/dist/reporters/junit.js +90 -95
  151. package/dist/reporters/junit.js.map +1 -1
  152. package/dist/sdk/lh-trace-processor.d.ts +35 -9
  153. package/dist/sdk/lh-trace-processor.d.ts.map +1 -1
  154. package/dist/sdk/lh-trace-processor.js +114 -53
  155. package/dist/sdk/lh-trace-processor.js.map +1 -1
  156. package/dist/sdk/trace-metrics.d.ts +4 -4
  157. package/dist/sdk/trace-metrics.d.ts.map +1 -1
  158. package/dist/sdk/trace-metrics.js +3 -4
  159. package/dist/sdk/trace-metrics.js.map +1 -1
  160. package/dist/sdk/trace-processor.d.ts +11 -3
  161. package/dist/sdk/trace-processor.d.ts.map +1 -1
  162. package/dist/sdk/trace-processor.js +17 -9
  163. package/dist/sdk/trace-processor.js.map +1 -1
  164. package/package.json +39 -24
  165. package/src/cli.ts +219 -151
  166. package/src/common_types.ts +193 -31
  167. package/src/config.ts +3 -6
  168. package/src/core/expect.ts +58 -24
  169. package/src/core/gatherer.ts +64 -24
  170. package/src/core/index.ts +36 -15
  171. package/src/core/logger.ts +1 -12
  172. package/src/core/runner.ts +151 -136
  173. package/src/core/transform.ts +160 -0
  174. package/src/dsl/journey.ts +39 -6
  175. package/src/dsl/monitor.ts +140 -0
  176. package/src/dsl/step.ts +9 -2
  177. package/src/formatter/javascript.ts +367 -0
  178. package/src/generator/index.ts +308 -0
  179. package/src/generator/utils.ts +84 -0
  180. package/src/helpers.ts +159 -13
  181. package/src/index.ts +22 -22
  182. package/src/loader.ts +167 -0
  183. package/src/locations/index.ts +95 -0
  184. package/src/{reporters/reporter.ts → locations/public-locations.ts} +12 -9
  185. package/src/options.ts +227 -0
  186. package/src/plugins/browser-console.ts +30 -8
  187. package/src/plugins/network.ts +208 -267
  188. package/src/plugins/performance.ts +6 -22
  189. package/src/plugins/plugin-manager.ts +49 -31
  190. package/src/plugins/tracing.ts +8 -9
  191. package/src/push/bundler.ts +112 -0
  192. package/src/push/index.ts +282 -0
  193. package/src/push/kibana_api.ts +191 -0
  194. package/src/push/monitor.ts +276 -0
  195. package/src/push/plugin.ts +66 -0
  196. package/src/push/request.ts +141 -0
  197. package/src/push/utils.ts +77 -0
  198. package/src/reporters/base.ts +63 -52
  199. package/src/reporters/index.ts +26 -3
  200. package/src/reporters/json.ts +183 -202
  201. package/src/reporters/junit.ts +98 -93
  202. package/src/sdk/lh-trace-processor.ts +132 -68
  203. package/src/sdk/trace-metrics.ts +8 -4
  204. package/src/sdk/trace-processor.ts +28 -13
  205. package/templates/.github/workflows/run-synthetics.yml +27 -0
  206. package/templates/README.md +21 -0
  207. package/templates/journeys/advanced-example-helpers.ts +54 -0
  208. package/templates/journeys/advanced-example.journey.ts +43 -0
  209. package/templates/journeys/example.journey.ts +18 -0
  210. package/templates/lightweight/heartbeat.yml +8 -0
  211. package/templates/synthetics.config.ts +35 -0
  212. package/CHANGELOG.md +0 -131
  213. package/NOTICE.txt +0 -221
  214. package/dist/parse_args.d.ts.map +0 -1
  215. package/dist/parse_args.js +0 -95
  216. package/dist/parse_args.js.map +0 -1
  217. package/dist/reporters/reporter.d.ts.map +0 -1
  218. package/dist/reporters/reporter.js.map +0 -1
  219. package/dist/tsconfig.tsbuildinfo +0 -1888
  220. package/src/parse_args.ts +0 -135
@@ -23,23 +23,10 @@
23
23
  * THE SOFTWARE.
24
24
  *
25
25
  */
26
- var __importDefault = (this && this.__importDefault) || function (mod) {
27
- return (mod && mod.__esModule) ? mod : { "default": mod };
28
- };
29
26
  Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.log = exports.setLogger = void 0;
31
- const sonic_boom_1 = __importDefault(require("sonic-boom"));
27
+ exports.log = void 0;
32
28
  const colors_1 = require("kleur/colors");
33
29
  const helpers_1 = require("../helpers");
34
- const defaultFd = process.stdout.fd;
35
- let logger = new sonic_boom_1.default({ fd: defaultFd, sync: true });
36
- const setLogger = (fd) => {
37
- if (fd && fd !== defaultFd) {
38
- logger = new sonic_boom_1.default({ fd });
39
- }
40
- return logger;
41
- };
42
- exports.setLogger = setLogger;
43
30
  function log(msg) {
44
31
  if (!process.env.DEBUG || !msg) {
45
32
  return;
@@ -47,8 +34,8 @@ function log(msg) {
47
34
  if (typeof msg === 'object') {
48
35
  msg = JSON.stringify(msg);
49
36
  }
50
- const time = colors_1.dim(colors_1.cyan(`at ${parseInt(String(helpers_1.now()))} ms `));
51
- logger.write(time + colors_1.italic(colors_1.grey(msg)) + '\n');
37
+ const time = (0, colors_1.dim)((0, colors_1.cyan)(`at ${parseInt(String((0, helpers_1.now)()))} ms `));
38
+ console.log(time + (0, colors_1.italic)((0, colors_1.grey)(msg)) + '\n');
52
39
  }
53
40
  exports.log = log;
54
41
  //# sourceMappingURL=logger.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;AAEH,4DAAmC;AACnC,yCAAuD;AACvD,wCAAiC;AAEjC,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AACpC,IAAI,MAAM,GAAG,IAAI,oBAAS,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;AAEnD,MAAM,SAAS,GAAG,CAAC,EAAU,EAAE,EAAE;IACtC,IAAI,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE;QAC1B,MAAM,GAAG,IAAI,oBAAS,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;KAChC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AALW,QAAA,SAAS,aAKpB;AAEF,SAAgB,GAAG,CAAC,GAAG;IACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE;QAC9B,OAAO;KACR;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KAC3B;IACD,MAAM,IAAI,GAAG,YAAG,CAAC,aAAI,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,aAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,eAAM,CAAC,aAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAChD,CAAC;AATD,kBASC"}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAEH,yCAAuD;AACvD,wCAAiC;AAEjC,SAAgB,GAAG,CAAC,GAAG;IACrB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE;QAC9B,OAAO;KACR;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;QAC3B,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;KAC3B;IACD,MAAM,IAAI,GAAG,IAAA,YAAG,EAAC,IAAA,aAAI,EAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,IAAA,aAAG,GAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,IAAA,eAAM,EAAC,IAAA,aAAI,EAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC;AATD,kBASC"}
@@ -22,86 +22,34 @@
22
22
  * THE SOFTWARE.
23
23
  *
24
24
  */
25
- /// <reference types="node" />
26
- import { EventEmitter } from 'events';
27
25
  import { Journey } from '../dsl/journey';
28
26
  import { Step } from '../dsl/step';
29
- import { Reporter } from '../reporters';
30
- import { StatusValue, HooksCallback, Params, PluginOutput, CliArgs, HooksArgs } from '../common_types';
27
+ import { HooksCallback, Params, HooksArgs, Driver, RunOptions, JourneyResult, StepResult } from '../common_types';
31
28
  import { PluginManager } from '../plugins';
32
- import { Metrics } from '../plugins';
33
- import { Driver } from './gatherer';
34
- export declare type RunOptions = Omit<CliArgs, 'debug' | 'json' | 'pattern' | 'inline' | 'require' | 'suiteParams' | 'reporter' | 'richEvents' | 'capability'> & {
35
- environment?: string;
36
- params?: Params;
37
- reporter?: CliArgs['reporter'] | Reporter;
38
- };
39
- declare type BaseContext = {
29
+ import { Monitor, MonitorConfig } from '../dsl/monitor';
30
+ declare type HookType = 'beforeAll' | 'afterAll';
31
+ export declare type SuiteHooks = Record<HookType, Array<HooksCallback>>;
32
+ declare type JourneyContext = {
40
33
  params?: Params;
41
34
  start: number;
42
- end?: number;
43
- };
44
- declare type JourneyContext = BaseContext & {
45
35
  driver: Driver;
46
36
  pluginManager: PluginManager;
47
37
  };
48
- declare type StepResult = {
49
- status: StatusValue;
50
- url?: string;
51
- metrics?: Metrics;
52
- error?: Error;
53
- };
54
- declare type JourneyResult = {
55
- status: StatusValue;
56
- error?: Error;
57
- };
58
38
  declare type RunResult = Record<string, JourneyResult>;
59
- declare type HookType = 'beforeAll' | 'afterAll';
60
- export declare type SuiteHooks = Record<HookType, Array<HooksCallback>>;
61
- interface Events {
62
- start: {
63
- numJourneys: number;
64
- };
65
- 'journey:register': {
66
- journey: Journey;
67
- };
68
- 'journey:start': {
69
- journey: Journey;
70
- timestamp: number;
71
- params: Params;
72
- };
73
- 'journey:end': BaseContext & JourneyResult & PluginOutput & {
74
- journey: Journey;
75
- options: RunOptions;
76
- };
77
- 'journey:end:reported': unknown;
78
- 'step:start': {
79
- journey: Journey;
80
- step: Step;
81
- };
82
- 'step:end': StepResult & {
83
- start: number;
84
- end: number;
85
- journey: Journey;
86
- step: Step;
87
- };
88
- end: unknown;
89
- }
90
- export default interface Runner {
91
- on<K extends keyof Events>(name: K, listener: (v: Events[K]) => void): this;
92
- emit<K extends keyof Events>(event: K, args: Events[K]): boolean;
93
- }
94
- export default class Runner extends EventEmitter {
95
- active: boolean;
96
- currentJourney?: Journey;
39
+ export default class Runner {
40
+ #private;
97
41
  journeys: Journey[];
98
42
  hooks: SuiteHooks;
99
43
  hookError: Error | undefined;
44
+ monitor?: Monitor;
100
45
  static screenshotPath: string;
101
46
  static createContext(options: RunOptions): Promise<JourneyContext>;
102
47
  captureScreenshot(page: Driver['page'], step: Step): Promise<void>;
48
+ get currentJourney(): Journey;
103
49
  addHook(type: HookType, callback: HooksCallback): void;
50
+ updateMonitor(config: MonitorConfig): void;
104
51
  addJourney(journey: Journey): void;
52
+ setReporter(options: RunOptions): void;
105
53
  runBeforeAllHook(args: HooksArgs): Promise<void>;
106
54
  runAfterAllHook(args: HooksArgs): Promise<void>;
107
55
  runBeforeHook(journey: Journey, args: HooksArgs): Promise<void>;
@@ -116,6 +64,7 @@ export default class Runner extends EventEmitter {
116
64
  runFakeJourney(journey: Journey, options: RunOptions): Promise<JourneyResult>;
117
65
  runJourney(journey: Journey, options: RunOptions): Promise<JourneyResult>;
118
66
  init(options: RunOptions): Promise<void>;
67
+ buildMonitors(options: RunOptions): Monitor[];
119
68
  run(options: RunOptions): Promise<RunResult>;
120
69
  reset(): Promise<void>;
121
70
  }
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;AAEH,OAAO,EAAQ,YAAY,EAAE,MAAM,QAAQ,CAAC;AAG5C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,EAAa,QAAQ,EAAE,MAAM,cAAc,CAAC;AAQnD,OAAO,EACL,WAAW,EACX,aAAa,EACb,MAAM,EACN,YAAY,EACZ,OAAO,EACP,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAsB,OAAO,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EAAE,MAAM,EAAY,MAAM,YAAY,CAAC;AAG9C,oBAAY,UAAU,GAAG,IAAI,CAC3B,OAAO,EACL,OAAO,GACP,MAAM,GACN,SAAS,GACT,QAAQ,GACR,SAAS,GACT,aAAa,GACb,UAAU,GACV,YAAY,GACZ,YAAY,CACf,GAAG;IACF,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;CAC3C,CAAC;AAEF,aAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,aAAK,cAAc,GAAG,WAAW,GAAG;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,aAAK,UAAU,GAAG;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,aAAK,aAAa,GAAG;IACnB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf,CAAC;AAEF,aAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE/C,aAAK,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AACzC,oBAAY,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAEhE,UAAU,MAAM;IACd,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,kBAAkB,EAAE;QAClB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,eAAe,EAAE;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,aAAa,EAAE,WAAW,GACxB,aAAa,GACb,YAAY,GAAG;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,UAAU,CAAC;KACrB,CAAC;IACJ,sBAAsB,EAAE,OAAO,CAAC;IAChC,YAAY,EAAE;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC;IAC/C,UAAU,EAAE,UAAU,GAAG;QACvB,KAAK,EAAE,MAAM,CAAC;QACd,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,EAAE,OAAO,CAAC;QACjB,IAAI,EAAE,IAAI,CAAC;KACZ,CAAC;IACF,GAAG,EAAE,OAAO,CAAC;CACd;AAED,MAAM,CAAC,OAAO,WAAW,MAAM;IAC7B,EAAE,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI,CAAC;IAC5E,IAAI,CAAC,CAAC,SAAS,MAAM,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;CAClE;AAED,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,YAAY;IAC9C,MAAM,UAAS;IACf,cAAc,CAAC,EAAE,OAAO,CAAQ;IAChC,QAAQ,EAAE,OAAO,EAAE,CAAM;IACzB,KAAK,EAAE,UAAU,CAAmC;IACpD,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B,MAAM,CAAC,cAAc,SAAmC;WAE3C,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAiBlE,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI;IAyBxD,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa;IAI/C,UAAU,CAAC,OAAO,EAAE,OAAO;IAKrB,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAKhC,eAAe,CAAC,IAAI,EAAE,SAAS;IAK/B,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;IAK/C,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;IAK9C,OAAO,CACX,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,UAAU,CAAC;IAsChB,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,UAAU;IAgCrB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc;IAWnD,UAAU,CACd,OAAO,KAAA,EACP,MAAM,EAAE,cAAc,GAAG,aAAa,EACtC,OAAO,EAAE,UAAU;IAyBrB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;IAwBpD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;IAmChD,IAAI,CAAC,OAAO,EAAE,UAAU;IAiBxB,GAAG,CAAC,OAAO,EAAE,UAAU;IAuCvB,KAAK;CAWZ"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAIH,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AASnC,OAAO,EACL,aAAa,EACb,MAAM,EACN,SAAS,EACT,MAAM,EAEN,UAAU,EACV,aAAa,EACb,UAAU,EACX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAI3C,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAExD,aAAK,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AACzC,oBAAY,UAAU,GAAG,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;AAEhE,aAAK,cAAc,GAAG;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,aAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;AAE/C,MAAM,CAAC,OAAO,OAAO,MAAM;;IAIzB,QAAQ,EAAE,OAAO,EAAE,CAAM;IACzB,KAAK,EAAE,UAAU,CAAmC;IACpD,SAAS,EAAE,KAAK,GAAG,SAAS,CAAC;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,cAAc,SAAmC;WAE3C,aAAa,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,cAAc,CAAC;IAqBlE,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI;IA2BxD,IAAI,cAAc,YAEjB;IAED,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,aAAa;IAI/C,aAAa,CAAC,MAAM,EAAE,aAAa;IAQnC,UAAU,CAAC,OAAO,EAAE,OAAO;IAK3B,WAAW,CAAC,OAAO,EAAE,UAAU;IAazB,gBAAgB,CAAC,IAAI,EAAE,SAAS;IAKhC,eAAe,CAAC,IAAI,EAAE,SAAS;IAK/B,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;IAK/C,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS;IAK9C,OAAO,CACX,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,UAAU,GAClB,OAAO,CAAC,UAAU,CAAC;IAiEhB,QAAQ,CACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,UAAU;IA8BrB,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc;IAenD,UAAU,CACd,OAAO,KAAA,EACP,MAAM,EAAE,cAAc,GAAG,aAAa,EACtC,OAAO,EAAE,UAAU;IAmBrB;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;IAoBpD,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU;IAiChD,IAAI,CAAC,OAAO,EAAE,UAAU;IAY9B,aAAa,CAAC,OAAO,EAAE,UAAU;IAiC3B,GAAG,CAAC,OAAO,EAAE,UAAU;IAuCvB,KAAK;CAWZ"}
@@ -24,31 +24,35 @@
24
24
  *
25
25
  */
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- const events_1 = require("events");
28
27
  const path_1 = require("path");
29
28
  const promises_1 = require("fs/promises");
30
29
  const reporters_1 = require("../reporters");
31
30
  const helpers_1 = require("../helpers");
32
- const plugins_1 = require("../plugins");
33
31
  const gatherer_1 = require("./gatherer");
34
32
  const logger_1 = require("./logger");
35
- class Runner extends events_1.EventEmitter {
36
- constructor() {
37
- super(...arguments);
38
- this.active = false;
39
- this.currentJourney = null;
40
- this.journeys = [];
41
- this.hooks = { beforeAll: [], afterAll: [] };
42
- }
33
+ const monitor_1 = require("../dsl/monitor");
34
+ class Runner {
35
+ #active = false;
36
+ #reporter;
37
+ #currentJourney = null;
38
+ journeys = [];
39
+ hooks = { beforeAll: [], afterAll: [] };
40
+ hookError;
41
+ monitor;
42
+ static screenshotPath = (0, path_1.join)(helpers_1.CACHE_PATH, 'screenshots');
43
43
  static async createContext(options) {
44
- const start = helpers_1.monotonicTimeInSeconds();
45
44
  const driver = await gatherer_1.Gatherer.setupDriver(options);
45
+ /**
46
+ * Do not include browser launch/context creation duration
47
+ * as part of journey duration
48
+ */
49
+ const start = (0, helpers_1.monotonicTimeInSeconds)();
46
50
  const pluginManager = await gatherer_1.Gatherer.beginRecording(driver, options);
47
51
  /**
48
52
  * For each journey we create the screenshots folder for
49
53
  * caching all screenshots and clear them at end of each journey
50
54
  */
51
- await promises_1.mkdir(this.screenshotPath, { recursive: true });
55
+ await (0, promises_1.mkdir)(this.screenshotPath, { recursive: true });
52
56
  return {
53
57
  start,
54
58
  params: options.params,
@@ -57,11 +61,11 @@ class Runner extends events_1.EventEmitter {
57
61
  };
58
62
  }
59
63
  async captureScreenshot(page, step) {
60
- await page.waitForLoadState('load');
61
64
  const buffer = await page
62
65
  .screenshot({
63
66
  type: 'jpeg',
64
67
  quality: 80,
68
+ timeout: 5000,
65
69
  })
66
70
  .catch(() => { });
67
71
  /**
@@ -70,43 +74,65 @@ class Runner extends events_1.EventEmitter {
70
74
  * each journey without impacting the step timing information
71
75
  */
72
76
  if (buffer) {
73
- const fileName = `${helpers_1.generateUniqueId()}.json`;
74
- await promises_1.writeFile(path_1.join(Runner.screenshotPath, fileName), JSON.stringify({
77
+ const fileName = `${(0, helpers_1.generateUniqueId)()}.json`;
78
+ const screenshot = {
75
79
  step,
80
+ timestamp: (0, helpers_1.getTimestamp)(),
76
81
  data: buffer.toString('base64'),
77
- }));
82
+ };
83
+ await (0, promises_1.writeFile)((0, path_1.join)(Runner.screenshotPath, fileName), JSON.stringify(screenshot));
78
84
  }
79
85
  }
86
+ get currentJourney() {
87
+ return this.#currentJourney;
88
+ }
80
89
  addHook(type, callback) {
81
90
  this.hooks[type].push(callback);
82
91
  }
92
+ updateMonitor(config) {
93
+ if (!this.monitor) {
94
+ this.monitor = new monitor_1.Monitor(config);
95
+ return;
96
+ }
97
+ this.monitor.update(config);
98
+ }
83
99
  addJourney(journey) {
84
100
  this.journeys.push(journey);
85
- this.currentJourney = journey;
101
+ this.#currentJourney = journey;
102
+ }
103
+ setReporter(options) {
104
+ /**
105
+ * Set up the corresponding reporter and fallback
106
+ * to default reporter if not provided
107
+ */
108
+ const { reporter, outfd } = options;
109
+ const Reporter = typeof reporter === 'function'
110
+ ? reporter
111
+ : reporters_1.reporters[reporter] || reporters_1.reporters['default'];
112
+ this.#reporter = new Reporter({ fd: outfd });
86
113
  }
87
114
  async runBeforeAllHook(args) {
88
- logger_1.log(`Runner: beforeAll hooks`);
89
- await helpers_1.runParallel(this.hooks.beforeAll, args);
115
+ (0, logger_1.log)(`Runner: beforeAll hooks`);
116
+ await (0, helpers_1.runParallel)(this.hooks.beforeAll, args);
90
117
  }
91
118
  async runAfterAllHook(args) {
92
- logger_1.log(`Runner: afterAll hooks`);
93
- await helpers_1.runParallel(this.hooks.afterAll, args);
119
+ (0, logger_1.log)(`Runner: afterAll hooks`);
120
+ await (0, helpers_1.runParallel)(this.hooks.afterAll, args);
94
121
  }
95
122
  async runBeforeHook(journey, args) {
96
- logger_1.log(`Runner: before hooks for (${journey.name})`);
97
- await helpers_1.runParallel(journey.hooks.before, args);
123
+ (0, logger_1.log)(`Runner: before hooks for (${journey.name})`);
124
+ await (0, helpers_1.runParallel)(journey.hooks.before, args);
98
125
  }
99
126
  async runAfterHook(journey, args) {
100
- logger_1.log(`Runner: after hooks for (${journey.name})`);
101
- await helpers_1.runParallel(journey.hooks.after, args);
127
+ (0, logger_1.log)(`Runner: after hooks for (${journey.name})`);
128
+ await (0, helpers_1.runParallel)(journey.hooks.after, args);
102
129
  }
103
130
  async runStep(step, context, options) {
104
- var _a;
105
131
  const data = {
106
132
  status: 'succeeded',
107
133
  };
108
- logger_1.log(`Runner: start step (${step.name})`);
109
- const { metrics, screenshots } = options;
134
+ (0, logger_1.log)(`Runner: start step (${step.name})`);
135
+ const { metrics, screenshots, filmstrips, trace } = options;
110
136
  const { driver, pluginManager } = context;
111
137
  /**
112
138
  * URL needs to be the first navigation request of any step
@@ -117,14 +143,28 @@ class Runner extends events_1.EventEmitter {
117
143
  if (!data.url && req.isNavigationRequest()) {
118
144
  data.url = req.url();
119
145
  }
120
- driver.page.off('request', captureUrl);
146
+ driver.context.off('request', captureUrl);
121
147
  };
122
- driver.page.on('request', captureUrl);
148
+ driver.context.on('request', captureUrl);
123
149
  try {
150
+ /**
151
+ * Set up plugin manager context and also register
152
+ * step level plugins
153
+ */
154
+ const traceEnabled = trace || filmstrips;
124
155
  pluginManager.onStep(step);
156
+ traceEnabled && (await pluginManager.start('trace'));
157
+ // call the step definition
125
158
  await step.callback();
159
+ /**
160
+ * Collect all step level metrics
161
+ */
126
162
  if (metrics) {
127
- data.metrics = await pluginManager.get(plugins_1.PerformanceManager).getMetrics();
163
+ data.pagemetrics = await pluginManager.get('performance').getMetrics();
164
+ }
165
+ if (traceEnabled) {
166
+ const traceOutput = await pluginManager.stop('trace');
167
+ Object.assign(data, traceOutput);
128
168
  }
129
169
  }
130
170
  catch (error) {
@@ -132,20 +172,30 @@ class Runner extends events_1.EventEmitter {
132
172
  data.error = error;
133
173
  }
134
174
  finally {
135
- (_a = data.url) !== null && _a !== void 0 ? _a : (data.url = driver.page.url());
136
- if (screenshots && screenshots !== 'off') {
137
- await this.captureScreenshot(driver.page, step);
175
+ /**
176
+ * Capture screenshot for the newly created pages
177
+ * via popup or new windows/tabs
178
+ *
179
+ * Last open page will get us the correct screenshot
180
+ */
181
+ const pages = driver.context.pages();
182
+ const page = pages[pages.length - 1];
183
+ if (page) {
184
+ data.url ??= page.url();
185
+ if (screenshots && screenshots !== 'off') {
186
+ await this.captureScreenshot(page, step);
187
+ }
138
188
  }
139
189
  }
140
- logger_1.log(`Runner: end step (${step.name})`);
190
+ (0, logger_1.log)(`Runner: end step (${step.name})`);
141
191
  return data;
142
192
  }
143
193
  async runSteps(journey, context, options) {
144
194
  const results = [];
145
195
  let skipStep = false;
146
196
  for (const step of journey.steps) {
147
- const start = helpers_1.monotonicTimeInSeconds();
148
- this.emit('step:start', { journey, step });
197
+ const start = (0, helpers_1.monotonicTimeInSeconds)();
198
+ this.#reporter?.onStepStart?.(journey, step);
149
199
  let data = { status: 'succeeded' };
150
200
  if (skipStep) {
151
201
  data.status = 'skipped';
@@ -158,11 +208,9 @@ class Runner extends events_1.EventEmitter {
158
208
  if (data.error)
159
209
  skipStep = true;
160
210
  }
161
- this.emit('step:end', {
162
- journey,
163
- step,
211
+ this.#reporter?.onStepEnd?.(journey, step, {
164
212
  start,
165
- end: helpers_1.monotonicTimeInSeconds(),
213
+ end: (0, helpers_1.monotonicTimeInSeconds)(),
166
214
  ...data,
167
215
  });
168
216
  if (options.pauseOnError && data.error) {
@@ -173,70 +221,62 @@ class Runner extends events_1.EventEmitter {
173
221
  return results;
174
222
  }
175
223
  registerJourney(journey, context) {
176
- this.currentJourney = journey;
177
- const timestamp = helpers_1.getTimestamp();
224
+ this.#currentJourney = journey;
225
+ const timestamp = (0, helpers_1.getTimestamp)();
178
226
  const { params } = context;
179
- this.emit('journey:start', { journey, timestamp, params });
227
+ this.#reporter?.onJourneyStart?.(journey, {
228
+ timestamp,
229
+ params,
230
+ });
180
231
  /**
181
- * Load and register the steps for the current journey
232
+ * Exeucute the journey callback which would
233
+ * register the steps for the current journey
182
234
  */
183
235
  journey.callback({ ...context.driver, params });
184
236
  }
185
237
  async endJourney(journey, result, options) {
238
+ const end = (0, helpers_1.monotonicTimeInSeconds)();
186
239
  const { pluginManager, start, status, error } = result;
187
240
  const pluginOutput = await pluginManager.output();
188
- this.emit('journey:end', {
189
- journey,
241
+ await this.#reporter?.onJourneyEnd?.(journey, {
190
242
  status,
191
243
  error,
192
244
  start,
193
- end: helpers_1.monotonicTimeInSeconds(),
245
+ end,
246
+ timestamp: (0, helpers_1.getTimestamp)(),
194
247
  options,
195
248
  ...pluginOutput,
196
249
  browserconsole: status == 'failed' ? pluginOutput.browserconsole : [],
197
250
  });
198
- /**
199
- * Wait for the all the reported events to be consumed aschronously
200
- * by reporter.
201
- */
202
- if (options.reporter === 'json') {
203
- await events_1.once(this, 'journey:end:reported');
204
- }
205
251
  // clear screenshots cache after each journey
206
- await promises_1.rm(Runner.screenshotPath, { recursive: true, force: true });
252
+ await (0, promises_1.rm)(Runner.screenshotPath, { recursive: true, force: true });
207
253
  }
208
254
  /**
209
255
  * Simulate a journey run to capture errors in the beforeAll hook
210
256
  */
211
257
  async runFakeJourney(journey, options) {
212
- const start = helpers_1.monotonicTimeInSeconds();
213
- this.emit('journey:start', {
214
- journey,
215
- timestamp: helpers_1.getTimestamp(),
258
+ const start = (0, helpers_1.monotonicTimeInSeconds)();
259
+ this.#reporter.onJourneyStart?.(journey, {
260
+ timestamp: (0, helpers_1.getTimestamp)(),
216
261
  params: options.params,
217
262
  });
218
263
  const result = {
219
264
  status: 'failed',
220
265
  error: this.hookError,
221
266
  };
222
- this.emit('journey:end', {
223
- journey,
267
+ await this.#reporter.onJourneyEnd?.(journey, {
268
+ timestamp: (0, helpers_1.getTimestamp)(),
224
269
  start,
225
270
  options,
226
- end: helpers_1.monotonicTimeInSeconds(),
271
+ end: (0, helpers_1.monotonicTimeInSeconds)(),
227
272
  ...result,
228
273
  });
229
- if (options.reporter === 'json') {
230
- await events_1.once(this, 'journey:end:reported');
231
- }
232
274
  return result;
233
275
  }
234
276
  async runJourney(journey, options) {
235
- const result = {
236
- status: 'succeeded',
237
- };
238
- logger_1.log(`Runner: start journey (${journey.name})`);
277
+ const result = { status: 'succeeded' };
239
278
  const context = await Runner.createContext(options);
279
+ (0, logger_1.log)(`Runner: start journey (${journey.name})`);
240
280
  try {
241
281
  this.registerJourney(journey, context);
242
282
  const hookArgs = {
@@ -264,31 +304,58 @@ class Runner extends events_1.EventEmitter {
264
304
  await this.endJourney(journey, { ...context, ...result }, options);
265
305
  await gatherer_1.Gatherer.dispose(context.driver);
266
306
  }
267
- logger_1.log(`Runner: end journey (${journey.name})`);
307
+ (0, logger_1.log)(`Runner: end journey (${journey.name})`);
268
308
  return result;
269
309
  }
270
310
  async init(options) {
271
- const { reporter, outfd } = options;
311
+ this.setReporter(options);
312
+ this.#reporter.onStart?.({
313
+ numJourneys: this.journeys.length,
314
+ networkConditions: options.networkConditions,
315
+ });
272
316
  /**
273
- * Set up the corresponding reporter and fallback
317
+ * Set up the directory for caching screenshots
274
318
  */
275
- const Reporter = typeof reporter === 'function'
276
- ? reporter
277
- : reporters_1.reporters[reporter] || reporters_1.reporters['default'];
278
- new Reporter(this, { fd: outfd });
279
- this.emit('start', { numJourneys: this.journeys.length });
319
+ await (0, promises_1.mkdir)(helpers_1.CACHE_PATH, { recursive: true });
320
+ }
321
+ buildMonitors(options) {
280
322
  /**
281
- * Set up the directory for caching screenshots
323
+ * Update the global monitor configuration required for
324
+ * setting defaults
282
325
  */
283
- await promises_1.mkdir(helpers_1.CACHE_PATH, { recursive: true });
326
+ this.updateMonitor({
327
+ throttling: options.throttling,
328
+ schedule: options.schedule,
329
+ locations: options.locations,
330
+ privateLocations: options.privateLocations,
331
+ params: options.params,
332
+ playwrightOptions: options.playwrightOptions,
333
+ });
334
+ const { match, tags } = options;
335
+ const monitors = [];
336
+ for (const journey of this.journeys) {
337
+ if (!journey.isMatch(match, tags)) {
338
+ continue;
339
+ }
340
+ this.#currentJourney = journey;
341
+ /**
342
+ * Execute dummy callback to get all monitor specific
343
+ * configurations for the current journey
344
+ */
345
+ journey.callback({ params: options.params });
346
+ journey.monitor.update(this.monitor?.config);
347
+ journey.monitor.validate();
348
+ monitors.push(journey.monitor);
349
+ }
350
+ return monitors;
284
351
  }
285
352
  async run(options) {
286
353
  const result = {};
287
- if (this.active) {
354
+ if (this.#active) {
288
355
  return result;
289
356
  }
290
- this.active = true;
291
- logger_1.log(`Runner: run ${this.journeys.length} journeys`);
357
+ this.#active = true;
358
+ (0, logger_1.log)(`Runner: run ${this.journeys.length} journeys`);
292
359
  this.init(options);
293
360
  await this.runBeforeAllHook({
294
361
  env: options.environment,
@@ -300,7 +367,7 @@ class Runner extends events_1.EventEmitter {
300
367
  * Used by heartbeat to gather all registered journeys
301
368
  */
302
369
  if (dryRun) {
303
- this.emit('journey:register', { journey });
370
+ this.#reporter.onJourneyRegister?.(journey);
304
371
  continue;
305
372
  }
306
373
  if (!journey.isMatch(match, tags)) {
@@ -320,17 +387,16 @@ class Runner extends events_1.EventEmitter {
320
387
  return result;
321
388
  }
322
389
  async reset() {
390
+ this.#currentJourney = null;
391
+ this.journeys = [];
392
+ this.#active = false;
323
393
  /**
324
394
  * Clear all cache data stored for post processing by
325
395
  * the current synthetic agent run
326
396
  */
327
- await promises_1.rm(helpers_1.CACHE_PATH, { recursive: true, force: true });
328
- this.currentJourney = null;
329
- this.journeys = [];
330
- this.active = false;
331
- this.emit('end', {});
397
+ await (0, promises_1.rm)(helpers_1.CACHE_PATH, { recursive: true, force: true });
398
+ await this.#reporter?.onEnd?.();
332
399
  }
333
400
  }
334
401
  exports.default = Runner;
335
- Runner.screenshotPath = path_1.join(helpers_1.CACHE_PATH, 'screenshots');
336
402
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}