@elastic/synthetics 1.0.0-beta.2 → 1.0.0-beta.22

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 (122) hide show
  1. package/CHANGELOG.md +235 -0
  2. package/NOTICE.txt +250 -0
  3. package/README.md +2 -1
  4. package/dist/cli.js +87 -56
  5. package/dist/cli.js.map +1 -1
  6. package/dist/common_types.d.ts +116 -14
  7. package/dist/common_types.d.ts.map +1 -1
  8. package/dist/config.d.ts +2 -5
  9. package/dist/config.d.ts.map +1 -1
  10. package/dist/config.js +5 -5
  11. package/dist/config.js.map +1 -1
  12. package/dist/core/browser-service.js +5 -5
  13. package/dist/core/browser-service.js.map +1 -1
  14. package/dist/core/expect.d.ts +177 -0
  15. package/dist/core/expect.d.ts.map +1 -0
  16. package/dist/core/expect.js +33 -0
  17. package/dist/core/expect.js.map +1 -0
  18. package/dist/core/gatherer.d.ts +4 -7
  19. package/dist/core/gatherer.d.ts.map +1 -1
  20. package/dist/core/gatherer.js +39 -12
  21. package/dist/core/gatherer.js.map +1 -1
  22. package/dist/core/index.d.ts +5 -5
  23. package/dist/core/index.d.ts.map +1 -1
  24. package/dist/core/index.js +2 -2
  25. package/dist/core/index.js.map +1 -1
  26. package/dist/core/logger.d.ts +0 -1
  27. package/dist/core/logger.d.ts.map +1 -1
  28. package/dist/core/logger.js +3 -16
  29. package/dist/core/logger.js.map +1 -1
  30. package/dist/core/runner.d.ts +54 -45
  31. package/dist/core/runner.d.ts.map +1 -1
  32. package/dist/core/runner.js +181 -71
  33. package/dist/core/runner.js.map +1 -1
  34. package/dist/dsl/journey.d.ts +13 -4
  35. package/dist/dsl/journey.d.ts.map +1 -1
  36. package/dist/dsl/journey.js +40 -1
  37. package/dist/dsl/journey.js.map +1 -1
  38. package/dist/formatter/javascript.d.ts +73 -0
  39. package/dist/formatter/javascript.d.ts.map +1 -0
  40. package/dist/formatter/javascript.js +274 -0
  41. package/dist/formatter/javascript.js.map +1 -0
  42. package/dist/helpers.d.ts +33 -12
  43. package/dist/helpers.d.ts.map +1 -1
  44. package/dist/helpers.js +108 -54
  45. package/dist/helpers.js.map +1 -1
  46. package/dist/index.d.ts +8 -0
  47. package/dist/index.d.ts.map +1 -1
  48. package/dist/index.js +6 -7
  49. package/dist/index.js.map +1 -1
  50. package/dist/parse_args.d.ts +5 -2
  51. package/dist/parse_args.d.ts.map +1 -1
  52. package/dist/parse_args.js +59 -16
  53. package/dist/parse_args.js.map +1 -1
  54. package/dist/plugins/browser-console.d.ts +5 -8
  55. package/dist/plugins/browser-console.d.ts.map +1 -1
  56. package/dist/plugins/browser-console.js +27 -8
  57. package/dist/plugins/browser-console.js.map +1 -1
  58. package/dist/plugins/network.d.ts +23 -20
  59. package/dist/plugins/network.d.ts.map +1 -1
  60. package/dist/plugins/network.js +149 -124
  61. package/dist/plugins/network.js.map +1 -1
  62. package/dist/plugins/performance.d.ts +5 -5
  63. package/dist/plugins/performance.d.ts.map +1 -1
  64. package/dist/plugins/performance.js +5 -5
  65. package/dist/plugins/performance.js.map +1 -1
  66. package/dist/plugins/plugin-manager.d.ts +11 -11
  67. package/dist/plugins/plugin-manager.d.ts.map +1 -1
  68. package/dist/plugins/plugin-manager.js +40 -24
  69. package/dist/plugins/plugin-manager.js.map +1 -1
  70. package/dist/plugins/tracing.d.ts +10 -25
  71. package/dist/plugins/tracing.d.ts.map +1 -1
  72. package/dist/plugins/tracing.js +40 -26
  73. package/dist/plugins/tracing.js.map +1 -1
  74. package/dist/reporters/base.d.ts +0 -1
  75. package/dist/reporters/base.d.ts.map +1 -1
  76. package/dist/reporters/base.js +34 -32
  77. package/dist/reporters/base.js.map +1 -1
  78. package/dist/reporters/json.d.ts +46 -59
  79. package/dist/reporters/json.d.ts.map +1 -1
  80. package/dist/reporters/json.js +188 -70
  81. package/dist/reporters/json.js.map +1 -1
  82. package/dist/reporters/junit.d.ts.map +1 -1
  83. package/dist/reporters/junit.js +7 -7
  84. package/dist/reporters/junit.js.map +1 -1
  85. package/dist/sdk/lh-trace-processor.d.ts +304 -0
  86. package/dist/sdk/lh-trace-processor.d.ts.map +1 -0
  87. package/dist/sdk/lh-trace-processor.js +832 -0
  88. package/dist/sdk/lh-trace-processor.js.map +1 -0
  89. package/dist/sdk/trace-metrics.d.ts +61 -0
  90. package/dist/sdk/trace-metrics.d.ts.map +1 -0
  91. package/dist/sdk/trace-metrics.js +252 -0
  92. package/dist/sdk/trace-metrics.js.map +1 -0
  93. package/dist/sdk/trace-processor.d.ts +106 -0
  94. package/dist/sdk/trace-processor.d.ts.map +1 -0
  95. package/dist/sdk/trace-processor.js +74 -0
  96. package/dist/sdk/trace-processor.js.map +1 -0
  97. package/dist/tsconfig.tsbuildinfo +1 -1575
  98. package/package.json +27 -16
  99. package/src/cli.ts +68 -45
  100. package/src/common_types.ts +138 -14
  101. package/src/config.ts +2 -5
  102. package/src/core/expect.ts +187 -0
  103. package/src/core/gatherer.ts +48 -24
  104. package/src/core/index.ts +6 -6
  105. package/src/core/logger.ts +1 -12
  106. package/src/core/runner.ts +259 -112
  107. package/src/dsl/journey.ts +28 -6
  108. package/src/formatter/javascript.ts +330 -0
  109. package/src/helpers.ts +114 -24
  110. package/src/index.ts +7 -6
  111. package/src/parse_args.ts +97 -22
  112. package/src/plugins/browser-console.ts +30 -13
  113. package/src/plugins/network.ts +175 -159
  114. package/src/plugins/performance.ts +7 -7
  115. package/src/plugins/plugin-manager.ts +47 -36
  116. package/src/plugins/tracing.ts +43 -54
  117. package/src/reporters/base.ts +29 -23
  118. package/src/reporters/json.ts +259 -80
  119. package/src/reporters/junit.ts +1 -1
  120. package/src/sdk/lh-trace-processor.ts +1033 -0
  121. package/src/sdk/trace-metrics.ts +287 -0
  122. package/src/sdk/trace-processor.ts +147 -0
@@ -0,0 +1,177 @@
1
+ /**
2
+ * MIT License
3
+ *
4
+ * Copyright (c) 2020-present, Elastic NV
5
+ *
6
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
7
+ * of this software and associated documentation files (the "Software"), to deal
8
+ * in the Software without restriction, including without limitation the rights
9
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10
+ * copies of the Software, and to permit persons to whom the Software is
11
+ * furnished to do so, subject to the following conditions:
12
+ *
13
+ * The above copyright notice and this permission notice shall be included in
14
+ * all copies or substantial portions of the Software.
15
+ *
16
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22
+ * THE SOFTWARE.
23
+ *
24
+ */
25
+ import type { AsymmetricMatcher, MatcherState, ExpectedAssertionsErrors } from 'expect/build/types';
26
+ export declare type Expect = {
27
+ <T = unknown>(actual: T): synthetics.Matchers<T>;
28
+ assertions(arg0: number): void;
29
+ extend(arg0: any): void;
30
+ extractExpectedAssertionsErrors: () => ExpectedAssertionsErrors;
31
+ getState(): MatcherState;
32
+ hasAssertions(): void;
33
+ setState(state: Partial<MatcherState>): void;
34
+ any(expectedObject: any): AsymmetricMatcher;
35
+ anything(): AsymmetricMatcher;
36
+ arrayContaining(sample: Array<unknown>): AsymmetricMatcher;
37
+ objectContaining(sample: Record<string, unknown>): AsymmetricMatcher;
38
+ stringContaining(expected: string): AsymmetricMatcher;
39
+ stringMatching(expected: string | RegExp): AsymmetricMatcher;
40
+ };
41
+ /**
42
+ * Override matchers from expect in our synthetic namespace to
43
+ * reduce support for spy and snapshot matchers which is
44
+ * impelemed via jest matchers
45
+ *
46
+ * We declare the types in global synthetics namespace which allows
47
+ * users to extend expect functionality without type errors
48
+ */
49
+ declare global {
50
+ export namespace synthetics {
51
+ interface Matchers<R> {
52
+ /**
53
+ * If you know how to test something, `.not` lets you test its opposite.
54
+ */
55
+ not: Matchers<R>;
56
+ /**
57
+ * Use resolves to unwrap the value of a fulfilled promise so any other
58
+ * matcher can be chained. If the promise is rejected the assertion fails.
59
+ */
60
+ resolves: Matchers<Promise<R>>;
61
+ /**
62
+ * Unwraps the reason of a rejected promise so any other matcher can be chained.
63
+ * If the promise is fulfilled the assertion fails.
64
+ */
65
+ rejects: Matchers<Promise<R>>;
66
+ /**
67
+ * Checks that a value is what you expect. It uses `===` to check strict equality.
68
+ * Don't use `toBe` with floating-point numbers.
69
+ */
70
+ toBe(expected: unknown): R;
71
+ /**
72
+ * Using exact equality with floating point numbers is a bad idea.
73
+ * Rounding means that intuitive things fail.
74
+ * The default for numDigits is 2.
75
+ */
76
+ toBeCloseTo(expected: number, numDigits?: number): R;
77
+ /**
78
+ * Ensure that a variable is not undefined.
79
+ */
80
+ toBeDefined(): R;
81
+ /**
82
+ * When you don't care what a value is, you just want to
83
+ * ensure a value is false in a boolean context.
84
+ */
85
+ toBeFalsy(): R;
86
+ /**
87
+ * For comparing floating point numbers.
88
+ */
89
+ toBeGreaterThan(expected: number | bigint): R;
90
+ /**
91
+ * For comparing floating point numbers.
92
+ */
93
+ toBeGreaterThanOrEqual(expected: number | bigint): R;
94
+ /**
95
+ * Ensure that an object is an instance of a class.
96
+ * This matcher uses `instanceof` underneath.
97
+ */
98
+ toBeInstanceOf(expected: Function): R;
99
+ /**
100
+ * For comparing floating point numbers.
101
+ */
102
+ toBeLessThan(expected: number | bigint): R;
103
+ /**
104
+ * For comparing floating point numbers.
105
+ */
106
+ toBeLessThanOrEqual(expected: number | bigint): R;
107
+ /**
108
+ * This is the same as `.toBe(null)` but the error messages are a bit nicer.
109
+ * So use `.toBeNull()` when you want to check that something is null.
110
+ */
111
+ toBeNull(): R;
112
+ /**
113
+ * Use when you don't care what a value is, you just want to ensure a value
114
+ * is true in a boolean context. In JavaScript, there are six falsy values:
115
+ * `false`, `0`, `''`, `null`, `undefined`, and `NaN`. Everything else is truthy.
116
+ */
117
+ toBeTruthy(): R;
118
+ /**
119
+ * Used to check that a variable is undefined.
120
+ */
121
+ toBeUndefined(): R;
122
+ /**
123
+ * Used to check that a variable is NaN.
124
+ */
125
+ toBeNaN(): R;
126
+ /**
127
+ * Used when you want to check that an item is in a list.
128
+ * For testing the items in the list, this uses `===`, a strict equality check.
129
+ */
130
+ toContain(expected: unknown): R;
131
+ /**
132
+ * Used when you want to check that an item is in a list.
133
+ * For testing the items in the list, this matcher recursively checks the
134
+ * equality of all fields, rather than checking for object identity.
135
+ */
136
+ toContainEqual(expected: unknown): R;
137
+ /**
138
+ * Used when you want to check that two objects have the same value.
139
+ * This matcher recursively checks the equality of all fields, rather than checking for object identity.
140
+ */
141
+ toEqual(expected: unknown): R;
142
+ /**
143
+ * Used to check that an object has a `.length` property
144
+ * and it is set to a certain numeric value.
145
+ */
146
+ toHaveLength(expected: number): R;
147
+ /**
148
+ * Use to check if property at provided reference keyPath exists for an object.
149
+ * For checking deeply nested properties in an object you may use dot notation or an array containing
150
+ * the keyPath for deep references.
151
+ *
152
+ * Optionally, you can provide a value to check if it's equal to the value present at keyPath
153
+ * on the target object. This matcher uses 'deep equality' (like `toEqual()`) and recursively checks
154
+ * the equality of all fields.
155
+ *
156
+ * @example
157
+ *
158
+ * expect(houseForSale).toHaveProperty('kitchen.area', 20);
159
+ */
160
+ toHaveProperty(keyPath: string | Array<string>, value?: unknown): R;
161
+ /**
162
+ * Check that a string matches a regular expression.
163
+ */
164
+ toMatch(expected: string | RegExp): R;
165
+ /**
166
+ * Used to check that a JavaScript object matches a subset of the properties of an object
167
+ */
168
+ toMatchObject(expected: Record<string, unknown> | Array<unknown>): R;
169
+ /**
170
+ * Use to test that objects have the same types as well as structure.
171
+ */
172
+ toStrictEqual(expected: unknown): R;
173
+ }
174
+ }
175
+ }
176
+ export declare const expect: Expect;
177
+ //# sourceMappingURL=expect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect.d.ts","sourceRoot":"","sources":["../../src/core/expect.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ /**
3
+ * MIT License
4
+ *
5
+ * Copyright (c) 2020-present, Elastic NV
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ * of this software and associated documentation files (the "Software"), to deal
9
+ * in the Software without restriction, including without limitation the rights
10
+ * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11
+ * copies of the Software, and to permit persons to whom the Software is
12
+ * furnished to do so, subject to the following conditions:
13
+ *
14
+ * The above copyright notice and this permission notice shall be included in
15
+ * all copies or substantial portions of the Software.
16
+ *
17
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20
+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
+ * THE SOFTWARE.
24
+ *
25
+ */
26
+ var __importDefault = (this && this.__importDefault) || function (mod) {
27
+ return (mod && mod.__esModule) ? mod : { "default": mod };
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.expect = void 0;
31
+ const expect_1 = __importDefault(require("expect"));
32
+ exports.expect = expect_1.default;
33
+ //# sourceMappingURL=expect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expect.js","sourceRoot":"","sources":["../../src/core/expect.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;AAEH,oDAA+B;AAiKlB,QAAA,MAAM,GAAW,gBAAS,CAAC"}
@@ -22,15 +22,10 @@
22
22
  * THE SOFTWARE.
23
23
  *
24
24
  */
25
- import { CDPSession, ChromiumBrowser, ChromiumBrowserContext, Page } from 'playwright-chromium';
25
+ import { ChromiumBrowser, BrowserContext } from 'playwright-chromium';
26
26
  import { PluginManager } from '../plugins';
27
27
  import { RunOptions } from './runner';
28
- export declare type Driver = {
29
- browser: ChromiumBrowser;
30
- context: ChromiumBrowserContext;
31
- page: Page;
32
- client: CDPSession;
33
- };
28
+ import { Driver } from '../common_types';
34
29
  /**
35
30
  * Purpose of the Gatherer is to set up the necessary browser driver
36
31
  * related capabilities for the runner to run all journeys
@@ -38,6 +33,8 @@ export declare type Driver = {
38
33
  export declare class Gatherer {
39
34
  static browser: ChromiumBrowser;
40
35
  static setupDriver(options: RunOptions): Promise<Driver>;
36
+ static getUserAgent(userAgent?: string): Promise<string>;
37
+ static setNetworkConditions(context: BrowserContext, networkConditions: RunOptions['networkConditions']): Promise<void>;
41
38
  /**
42
39
  * Starts recording all events related to the v8 devtools protocol
43
40
  * https://chromedevtools.github.io/devtools-protocol/v8/
@@ -1 +1 @@
1
- {"version":3,"file":"gatherer.d.ts","sourceRoot":"","sources":["../../src/core/gatherer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EACL,UAAU,EAEV,eAAe,EACf,sBAAsB,EACtB,IAAI,EACL,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,oBAAY,MAAM,GAAG;IACnB,OAAO,EAAE,eAAe,CAAC;IACzB,OAAO,EAAE,sBAAsB,CAAC;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF;;;GAGG;AACH,qBAAa,QAAQ;IACnB,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC;WAEnB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB9D;;;OAGG;WACU,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;WAWlD,OAAO,CAAC,MAAM,EAAE,MAAM;WAItB,IAAI;CAMlB"}
1
+ {"version":3,"file":"gatherer.d.ts","sourceRoot":"","sources":["../../src/core/gatherer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAY,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC;;;GAGG;AACH,qBAAa,QAAQ;IACnB,MAAM,CAAC,OAAO,EAAE,eAAe,CAAC;WAEnB,WAAW,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC;WA6BjD,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM;WAS/B,oBAAoB,CAC/B,OAAO,EAAE,cAAc,EACvB,iBAAiB,EAAE,UAAU,CAAC,mBAAmB,CAAC;IAcpD;;;OAGG;WACU,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU;WAYlD,OAAO,CAAC,MAAM,EAAE,MAAM;WAItB,IAAI;CAMlB"}
@@ -34,36 +34,63 @@ const logger_1 = require("./logger");
34
34
  */
35
35
  class Gatherer {
36
36
  static async setupDriver(options) {
37
+ var _a;
38
+ (0, logger_1.log)('Gatherer: setup driver');
39
+ const { wsEndpoint, playwrightOptions, networkConditions } = options;
37
40
  if (Gatherer.browser == null) {
38
- const { wsEndpoint, headless, sandbox = false } = options;
39
41
  if (wsEndpoint) {
40
- logger_1.log(`Gatherer: connecting to WS endpoint: ${wsEndpoint}`);
41
- Gatherer.browser = await playwright_chromium_1.chromium.connect({ wsEndpoint });
42
+ (0, logger_1.log)(`Gatherer: connecting to WS endpoint: ${wsEndpoint}`);
43
+ Gatherer.browser = await playwright_chromium_1.chromium.connect(wsEndpoint);
42
44
  }
43
45
  else {
44
46
  Gatherer.browser = await playwright_chromium_1.chromium.launch({
45
- headless,
46
- chromiumSandbox: sandbox,
47
+ ...playwrightOptions,
48
+ args: [
49
+ ...((playwrightOptions === null || playwrightOptions === void 0 ? void 0 : playwrightOptions.headless) ? ['--disable-gpu'] : []),
50
+ ...((_a = playwrightOptions === null || playwrightOptions === void 0 ? void 0 : playwrightOptions.args) !== null && _a !== void 0 ? _a : []),
51
+ ],
47
52
  });
48
53
  }
49
54
  }
50
- const context = await Gatherer.browser.newContext();
55
+ const context = await Gatherer.browser.newContext({
56
+ ...playwrightOptions,
57
+ userAgent: await Gatherer.getUserAgent(playwrightOptions === null || playwrightOptions === void 0 ? void 0 : playwrightOptions.userAgent),
58
+ });
59
+ await Gatherer.setNetworkConditions(context, networkConditions);
51
60
  const page = await context.newPage();
52
61
  const client = await context.newCDPSession(page);
53
62
  return { browser: Gatherer.browser, context, page, client };
54
63
  }
64
+ static async getUserAgent(userAgent) {
65
+ const syntheticsIdentifier = ' Elastic/Synthetics';
66
+ if (!userAgent) {
67
+ const session = await Gatherer.browser.newBrowserCDPSession();
68
+ ({ userAgent } = await session.send('Browser.getVersion'));
69
+ }
70
+ return userAgent + syntheticsIdentifier;
71
+ }
72
+ static async setNetworkConditions(context, networkConditions) {
73
+ if (networkConditions) {
74
+ context.on('page', async (page) => {
75
+ const context = page.context();
76
+ const client = await context.newCDPSession(page);
77
+ await client.send('Network.emulateNetworkConditions', networkConditions);
78
+ });
79
+ }
80
+ }
55
81
  /**
56
82
  * Starts recording all events related to the v8 devtools protocol
57
83
  * https://chromedevtools.github.io/devtools-protocol/v8/
58
84
  */
59
85
  static async beginRecording(driver, options) {
60
- logger_1.log('Gatherer: started recording');
61
- const { filmstrips, network, metrics } = options;
86
+ (0, logger_1.log)('Gatherer: started recording');
87
+ const { network, metrics } = options;
62
88
  const pluginManager = new plugins_1.PluginManager(driver);
63
- pluginManager.start('browserconsole');
64
- filmstrips && (await pluginManager.start('trace'));
65
- network && (await pluginManager.start('network'));
66
- metrics && (await pluginManager.start('performance'));
89
+ pluginManager.registerAll(options);
90
+ const plugins = [await pluginManager.start('browserconsole')];
91
+ network && plugins.push(await pluginManager.start('network'));
92
+ metrics && plugins.push(await pluginManager.start('performance'));
93
+ await Promise.all(plugins);
67
94
  return pluginManager;
68
95
  }
69
96
  static async dispose(driver) {
@@ -1 +1 @@
1
- {"version":3,"file":"gatherer.js","sourceRoot":"","sources":["../../src/core/gatherer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;AAEH,6DAM6B;AAC7B,wCAA2C;AAE3C,qCAA+B;AAS/B;;;GAGG;AACH,MAAa,QAAQ;IAGnB,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAmB;QAC1C,IAAI,QAAQ,CAAC,OAAO,IAAI,IAAI,EAAE;YAC5B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;YAC1D,IAAI,UAAU,EAAE;gBACd,YAAG,CAAC,wCAAwC,UAAU,EAAE,CAAC,CAAC;gBAC1D,QAAQ,CAAC,OAAO,GAAG,MAAM,8BAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;aAC3D;iBAAM;gBACL,QAAQ,CAAC,OAAO,GAAG,MAAM,8BAAQ,CAAC,MAAM,CAAC;oBACvC,QAAQ;oBACR,eAAe,EAAE,OAAO;iBACzB,CAAC,CAAC;aACJ;SACF;QACD,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QACjD,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC9D,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,OAAmB;QAC7D,YAAG,CAAC,6BAA6B,CAAC,CAAC;QACnC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;QACjD,MAAM,aAAa,GAAG,IAAI,uBAAa,CAAC,MAAM,CAAC,CAAC;QAChD,aAAa,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACtC,UAAU,IAAI,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACnD,OAAO,IAAI,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;QAClD,OAAO,IAAI,CAAC,MAAM,aAAa,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QACtD,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAc;QACjC,MAAM,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI;QACf,IAAI,QAAQ,CAAC,OAAO,EAAE;YACpB,MAAM,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;SACzB;IACH,CAAC;CACF;AA/CD,4BA+CC"}
1
+ {"version":3,"file":"gatherer.js","sourceRoot":"","sources":["../../src/core/gatherer.ts"],"names":[],"mappings":"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"}
@@ -24,12 +24,12 @@
24
24
  */
25
25
  import { Journey, JourneyCallback, JourneyOptions } from '../dsl';
26
26
  import Runner from './runner';
27
- import { VoidCallback } from '../common_types';
27
+ import { VoidCallback, HooksCallback } from '../common_types';
28
28
  export declare const runner: Runner;
29
29
  export declare const journey: (options: JourneyOptions | string, callback: JourneyCallback) => Journey;
30
30
  export declare const step: (name: string, callback: VoidCallback) => import("../dsl").Step;
31
- export declare const beforeAll: (callback: VoidCallback) => void;
32
- export declare const afterAll: (callback: VoidCallback) => void;
33
- export declare const before: (callback: VoidCallback) => void;
34
- export declare const after: (callback: VoidCallback) => void;
31
+ export declare const beforeAll: (callback: HooksCallback) => void;
32
+ export declare const afterAll: (callback: HooksCallback) => void;
33
+ export declare const before: (callback: HooksCallback) => void;
34
+ export declare const after: (callback: HooksCallback) => void;
35
35
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAY/C,eAAO,MAAM,MAAM,EAAE,MAAkC,CAAC;AAExD,eAAO,MAAM,OAAO,YACT,cAAc,GAAG,MAAM,YACtB,eAAe,YAS1B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAU,MAAM,YAAY,YAAY,0BAGxD,CAAC;AAEF,eAAO,MAAM,SAAS,aAAc,YAAY,SAE/C,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAc,YAAY,SAE9C,CAAC;AAEF,eAAO,MAAM,MAAM,aAAc,YAAY,SAK5C,CAAC;AAEF,eAAO,MAAM,KAAK,aAAc,YAAY,SAK3C,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAClE,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAY9D,eAAO,MAAM,MAAM,EAAE,MAAkC,CAAC;AAExD,eAAO,MAAM,OAAO,YACT,cAAc,GAAG,MAAM,YACtB,eAAe,YAS1B,CAAC;AAEF,eAAO,MAAM,IAAI,SAAU,MAAM,YAAY,YAAY,0BAGxD,CAAC;AAEF,eAAO,MAAM,SAAS,aAAc,aAAa,SAEhD,CAAC;AAEF,eAAO,MAAM,QAAQ,aAAc,aAAa,SAE/C,CAAC;AAEF,eAAO,MAAM,MAAM,aAAc,aAAa,SAK7C,CAAC;AAEF,eAAO,MAAM,KAAK,aAAc,aAAa,SAK5C,CAAC"}
@@ -41,7 +41,7 @@ if (!global[SYNTHETICS_RUNNER]) {
41
41
  }
42
42
  exports.runner = global[SYNTHETICS_RUNNER];
43
43
  const journey = (options, callback) => {
44
- logger_1.log(`register journey: ${options}`);
44
+ (0, logger_1.log)(`register journey: ${JSON.stringify(options)}`);
45
45
  if (typeof options === 'string') {
46
46
  options = { name: options, id: options };
47
47
  }
@@ -52,7 +52,7 @@ const journey = (options, callback) => {
52
52
  exports.journey = journey;
53
53
  const step = (name, callback) => {
54
54
  var _a;
55
- logger_1.log(`register step: ${name}`);
55
+ (0, logger_1.log)(`register step: ${name}`);
56
56
  return (_a = exports.runner.currentJourney) === null || _a === void 0 ? void 0 : _a.addStep(name, callback);
57
57
  };
58
58
  exports.step = step;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;AAEH,gCAAkE;AAClE,sDAA8B;AAE9B,qCAA+B;AAE/B;;;GAGG;AACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC1D,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;IAC9B,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,gBAAM,EAAE,CAAC;CAC1C;AAEY,QAAA,MAAM,GAAW,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEjD,MAAM,OAAO,GAAG,CACrB,OAAgC,EAChC,QAAyB,EACzB,EAAE;IACF,YAAG,CAAC,qBAAqB,OAAO,EAAE,CAAC,CAAC;IACpC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;KAC1C;IACD,MAAM,CAAC,GAAG,IAAI,aAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAXW,QAAA,OAAO,WAWlB;AAEK,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAAsB,EAAE,EAAE;;IAC3D,YAAG,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAC9B,OAAO,MAAA,cAAM,CAAC,cAAc,0CAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC,CAAC;AAHW,QAAA,IAAI,QAGf;AAEK,MAAM,SAAS,GAAG,CAAC,QAAsB,EAAE,EAAE;IAClD,cAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,QAAQ,GAAG,CAAC,QAAsB,EAAE,EAAE;IACjD,cAAM,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEK,MAAM,MAAM,GAAG,CAAC,QAAsB,EAAE,EAAE;IAC/C,IAAI,CAAC,cAAM,CAAC,cAAc,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IACD,OAAO,cAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC,CAAC;AALW,QAAA,MAAM,UAKjB;AAEK,MAAM,KAAK,GAAG,CAAC,QAAsB,EAAE,EAAE;IAC9C,IAAI,CAAC,cAAM,CAAC,cAAc,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IACD,OAAO,cAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;;;;;;AAEH,gCAAkE;AAClE,sDAA8B;AAE9B,qCAA+B;AAE/B;;;GAGG;AACH,MAAM,iBAAiB,GAAG,MAAM,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;AAC1D,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,EAAE;IAC9B,MAAM,CAAC,iBAAiB,CAAC,GAAG,IAAI,gBAAM,EAAE,CAAC;CAC1C;AAEY,QAAA,MAAM,GAAW,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAEjD,MAAM,OAAO,GAAG,CACrB,OAAgC,EAChC,QAAyB,EACzB,EAAE;IACF,IAAA,YAAG,EAAC,qBAAqB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACpD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;QAC/B,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,CAAC;KAC1C;IACD,MAAM,CAAC,GAAG,IAAI,aAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACzC,cAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,CAAC;AACX,CAAC,CAAC;AAXW,QAAA,OAAO,WAWlB;AAEK,MAAM,IAAI,GAAG,CAAC,IAAY,EAAE,QAAsB,EAAE,EAAE;;IAC3D,IAAA,YAAG,EAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;IAC9B,OAAO,MAAA,cAAM,CAAC,cAAc,0CAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACxD,CAAC,CAAC;AAHW,QAAA,IAAI,QAGf;AAEK,MAAM,SAAS,GAAG,CAAC,QAAuB,EAAE,EAAE;IACnD,cAAM,CAAC,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;AACxC,CAAC,CAAC;AAFW,QAAA,SAAS,aAEpB;AAEK,MAAM,QAAQ,GAAG,CAAC,QAAuB,EAAE,EAAE;IAClD,cAAM,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AACvC,CAAC,CAAC;AAFW,QAAA,QAAQ,YAEnB;AAEK,MAAM,MAAM,GAAG,CAAC,QAAuB,EAAE,EAAE;IAChD,IAAI,CAAC,cAAM,CAAC,cAAc,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;IACD,OAAO,cAAM,CAAC,cAAc,CAAC,OAAO,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC3D,CAAC,CAAC;AALW,QAAA,MAAM,UAKjB;AAEK,MAAM,KAAK,GAAG,CAAC,QAAuB,EAAE,EAAE;IAC/C,IAAI,CAAC,cAAM,CAAC,cAAc,EAAE;QAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;KACnE;IACD,OAAO,cAAM,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;AAC1D,CAAC,CAAC;AALW,QAAA,KAAK,SAKhB"}
@@ -22,6 +22,5 @@
22
22
  * THE SOFTWARE.
23
23
  *
24
24
  */
25
- export declare const setLogger: (fd: number) => any;
26
25
  export declare function log(msg: any): void;
27
26
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,eAAO,MAAM,SAAS,OAAQ,MAAM,QAKnC,CAAC;AAEF,wBAAgB,GAAG,CAAC,GAAG,KAAA,QAStB"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/core/logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAKH,wBAAgB,GAAG,CAAC,GAAG,KAAA,QAStB"}
@@ -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"}
@@ -27,92 +27,101 @@ import { EventEmitter } from 'events';
27
27
  import { Journey } from '../dsl/journey';
28
28
  import { Step } from '../dsl/step';
29
29
  import { Reporter } from '../reporters';
30
- import { StatusValue, FilmStrip, NetworkInfo, VoidCallback, CliArgs } from '../common_types';
31
- import { BrowserMessage, 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' | 'environment'> & {
35
- params?: RunParamaters;
30
+ import { StatusValue, HooksCallback, Params, NetworkConditions, PluginOutput, CliArgs, HooksArgs, PlaywrightOptions, Driver } from '../common_types';
31
+ import { PageMetrics, PluginManager } from '../plugins';
32
+ export declare type RunOptions = Omit<CliArgs, 'debug' | 'pattern' | 'inline' | 'require' | 'reporter' | 'richEvents' | 'capability' | 'sandbox' | 'headless' | 'throttling'> & {
33
+ environment?: string;
34
+ playwrightOptions?: PlaywrightOptions;
35
+ networkConditions?: NetworkConditions;
36
36
  reporter?: CliArgs['reporter'] | Reporter;
37
37
  };
38
- declare type RunParamaters = {
39
- environment: string;
40
- } & Record<string, unknown>;
41
- declare type BaseContext = {
42
- params?: RunParamaters;
38
+ declare type HookType = 'beforeAll' | 'afterAll';
39
+ export declare type SuiteHooks = Record<HookType, Array<HooksCallback>>;
40
+ declare type JourneyContext = {
41
+ params?: Params;
43
42
  start: number;
44
- end?: number;
45
- };
46
- declare type JourneyContext = BaseContext & {
47
43
  driver: Driver;
48
44
  pluginManager: PluginManager;
49
45
  };
50
46
  declare type StepResult = {
51
47
  status: StatusValue;
52
48
  url?: string;
53
- metrics?: Metrics;
54
49
  error?: Error;
55
- screenshot?: string;
50
+ pagemetrics?: PageMetrics;
51
+ filmstrips?: PluginOutput['filmstrips'];
52
+ metrics?: PluginOutput['metrics'];
53
+ traces?: PluginOutput['traces'];
56
54
  };
57
55
  declare type JourneyResult = {
58
56
  status: StatusValue;
59
57
  error?: Error;
58
+ networkinfo?: PluginOutput['networkinfo'];
59
+ browserconsole?: PluginOutput['browserconsole'];
60
60
  };
61
61
  declare type RunResult = Record<string, JourneyResult>;
62
- declare type HookType = 'beforeAll' | 'afterAll';
63
- export declare type SuiteHooks = Record<HookType, Array<VoidCallback>>;
62
+ interface StepEvent {
63
+ step: Step;
64
+ journey: Journey;
65
+ }
66
+ interface JourneyEvent {
67
+ journey: Journey;
68
+ timestamp: number;
69
+ params?: Params;
70
+ }
64
71
  interface Events {
65
72
  start: {
66
73
  numJourneys: number;
74
+ networkConditions?: NetworkConditions;
67
75
  };
68
76
  'journey:register': {
69
77
  journey: Journey;
70
78
  };
71
- 'journey:start': {
72
- journey: Journey;
79
+ 'journey:start': JourneyEvent;
80
+ 'journey:end': JourneyEvent & JourneyResult & {
81
+ start: number;
82
+ end: number;
83
+ options: RunOptions;
73
84
  timestamp: number;
74
- params: RunParamaters;
75
- };
76
- 'journey:end': BaseContext & JourneyResult & {
77
- journey: Journey;
78
- filmstrips?: Array<FilmStrip>;
79
- networkinfo?: Array<NetworkInfo>;
80
- browserconsole?: Array<BrowserMessage>;
81
85
  };
82
- 'step:start': {
83
- journey: Journey;
84
- step: Step;
85
- };
86
- 'step:end': StepResult & {
86
+ 'journey:end:reported': unknown;
87
+ 'step:start': StepEvent;
88
+ 'step:end': StepEvent & StepResult & {
87
89
  start: number;
88
90
  end: number;
89
- journey: Journey;
90
- step: Step;
91
91
  };
92
92
  end: unknown;
93
93
  }
94
- export default class Runner {
94
+ export default interface Runner {
95
+ on<K extends keyof Events>(name: K, listener: (v: Events[K]) => void): this;
96
+ emit<K extends keyof Events>(event: K, args: Events[K]): boolean;
97
+ }
98
+ export default class Runner extends EventEmitter {
95
99
  active: boolean;
96
- eventEmitter: EventEmitter;
97
100
  currentJourney?: Journey;
98
101
  journeys: Journey[];
99
102
  hooks: SuiteHooks;
103
+ hookError: Error | undefined;
104
+ static screenshotPath: string;
100
105
  static createContext(options: RunOptions): Promise<JourneyContext>;
101
- addHook(type: HookType, callback: VoidCallback): void;
106
+ captureScreenshot(page: Driver['page'], step: Step): Promise<void>;
107
+ addHook(type: HookType, callback: HooksCallback): void;
102
108
  addJourney(journey: Journey): void;
103
- emit<K extends keyof Events>(e: K, v: Events[K]): void;
104
- on<K extends keyof Events>(e: K, cb: (v: Events[K]) => void): void;
105
- runBeforeAllHook(): Promise<void>;
106
- runAfterAllHook(): Promise<void>;
107
- runBeforeHook(journey: Journey): Promise<void>;
108
- runAfterHook(journey: Journey): Promise<void>;
109
+ runBeforeAllHook(args: HooksArgs): Promise<void>;
110
+ runAfterAllHook(args: HooksArgs): Promise<void>;
111
+ runBeforeHook(journey: Journey, args: HooksArgs): Promise<void>;
112
+ runAfterHook(journey: Journey, args: HooksArgs): Promise<void>;
109
113
  runStep(step: Step, context: JourneyContext, options: RunOptions): Promise<StepResult>;
110
114
  runSteps(journey: Journey, context: JourneyContext, options: RunOptions): Promise<StepResult[]>;
111
115
  registerJourney(journey: Journey, context: JourneyContext): void;
112
- endJourney(journey: any, result: JourneyContext & JourneyResult): Promise<void>;
116
+ endJourney(journey: any, result: JourneyContext & JourneyResult, options: RunOptions): Promise<void>;
117
+ /**
118
+ * Simulate a journey run to capture errors in the beforeAll hook
119
+ */
120
+ runFakeJourney(journey: Journey, options: RunOptions): Promise<JourneyResult>;
113
121
  runJourney(journey: Journey, options: RunOptions): Promise<JourneyResult>;
122
+ init(options: RunOptions): Promise<void>;
114
123
  run(options: RunOptions): Promise<RunResult>;
115
- reset(): void;
124
+ reset(): Promise<void>;
116
125
  }
117
126
  export {};
118
127
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/core/runner.ts"],"names":[],"mappings":"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"}