@elastic/synthetics 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/push/monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,EAAqB,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C,oBAAY,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAC7D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAIF,oBAAY,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAOF,cAAM,gBAAgB;IAEpB,MAAM,cAAqB;IAE3B,UAAU,cAAqB;IAE/B,UAAU,cAAqB;IAE/B,YAAY,cAAqB;CAClC;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,aAAa,EAAE,GACtB,gBAAgB,CAiClB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,mBASnD;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,4BA6B1E;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,sBAoErB;AAGD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,WAAW,WA8BrB;AAED,eAAO,MAAM,gBAAgB,WAAY,aAAa;;;;CAWrD,CAAC;AAEF,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,kDA+B7C"}
1
+ {"version":3,"file":"monitor.d.ts","sourceRoot":"","sources":["../../src/push/monitor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AASH,OAAO,EACL,WAAW,EAEX,OAAO,EACP,aAAa,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAM9C,oBAAY,aAAa,GAAG,IAAI,CAAC,aAAa,EAAE,WAAW,CAAC,GAAG;IAC7D,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAIF,oBAAY,aAAa,GAAG;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAOF,cAAM,gBAAgB;IAEpB,MAAM,cAAqB;IAE3B,UAAU,cAAqB;IAE/B,UAAU,cAAqB;IAE/B,YAAY,cAAqB;CAClC;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,aAAa,EAAE,EACtB,MAAM,EAAE,aAAa,EAAE,GACtB,gBAAgB,CAiClB;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,mBASnD;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,OAAO,4BA6B1E;AAED,wBAAsB,yBAAyB,CAC7C,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,WAAW,sBAgErB;AAGD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,WAAW,WAgCrB;AAED,eAAO,MAAM,gBAAgB,WACnB,aAAa,YACX,WAAW,OAatB,CAAC;AAEF,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,QAAQ,GAAG,KAAK,EACrB,MAAM,EAAE,aAAa,EACrB,WAAW,CAAC,EAAE,WAAW,GACxB;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CA4BtB;AAED,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,kDA+B7C"}
@@ -24,7 +24,7 @@
24
24
  *
25
25
  */
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.parseSchedule = exports.parseAlertConfig = exports.buildMonitorFromYaml = exports.createLightweightMonitors = exports.buildMonitorSchema = exports.getLocalMonitors = exports.diffMonitors = void 0;
27
+ exports.parseSchedule = exports.getAlertKeyValue = exports.parseAlertConfig = exports.buildMonitorFromYaml = exports.createLightweightMonitors = exports.buildMonitorSchema = exports.getLocalMonitors = exports.diffMonitors = void 0;
28
28
  const promises_1 = require("fs/promises");
29
29
  const path_1 = require("path");
30
30
  const yaml_1 = require("yaml");
@@ -166,10 +166,6 @@ async function createLightweightMonitors(workDir, options) {
166
166
  continue;
167
167
  }
168
168
  const config = monNode.toJSON();
169
- // Filter based on matched tags and name
170
- if (!(0, helpers_1.isMatch)(config.tags, config.name, options.tags, options.match)) {
171
- continue;
172
- }
173
169
  const { line, col } = lineCounter.linePos(monNode.srcToken.offset);
174
170
  try {
175
171
  const mon = buildMonitorFromYaml(config, options);
@@ -195,11 +191,14 @@ function buildMonitorFromYaml(config, options) {
195
191
  }
196
192
  }
197
193
  const schedule = config.schedule && parseSchedule(String(config.schedule));
198
- const privateLocations = config['private_locations'] || options.privateLocations;
194
+ const privateLocations = config['private_locations'] ||
195
+ config.privateLocations ||
196
+ options.privateLocations;
199
197
  delete config['private_locations'];
200
- const alertConfig = (0, exports.parseAlertConfig)(config);
198
+ const alertConfig = (0, exports.parseAlertConfig)(config, options.alert);
201
199
  const mon = new monitor_1.Monitor({
202
200
  locations: options.locations,
201
+ tags: options.tags,
203
202
  ...config,
204
203
  privateLocations,
205
204
  schedule: schedule || options.schedule,
@@ -215,19 +214,48 @@ function buildMonitorFromYaml(config, options) {
215
214
  return mon;
216
215
  }
217
216
  exports.buildMonitorFromYaml = buildMonitorFromYaml;
218
- const parseAlertConfig = (config) => {
219
- if (config['alert.status.enabled'] !== undefined) {
220
- const value = config['alert.status.enabled'];
221
- delete config['alert.status.enabled'];
222
- return {
223
- status: {
224
- enabled: value,
225
- },
226
- };
217
+ const parseAlertConfig = (config, gConfig) => {
218
+ // If the user has provided a global alert config, merge it with the monitor alert config
219
+ const status = getAlertKeyValue('status', config, gConfig);
220
+ const tls = getAlertKeyValue('tls', config, gConfig);
221
+ const result = {};
222
+ if (status) {
223
+ result['status'] = status;
227
224
  }
228
- return config.alert;
225
+ if (tls) {
226
+ result['tls'] = tls;
227
+ }
228
+ return Object.keys(result).length > 0 ? result : undefined;
229
229
  };
230
230
  exports.parseAlertConfig = parseAlertConfig;
231
+ function getAlertKeyValue(key, config, alertConfig) {
232
+ const value = config.alert;
233
+ if (value?.[key]?.enabled !== undefined) {
234
+ return {
235
+ enabled: value[key].enabled,
236
+ };
237
+ }
238
+ if (value?.[`${key}.enabled`] !== undefined) {
239
+ const val = value?.[`${key}.enabled`];
240
+ delete value?.[`${key}.enabled`];
241
+ if (Object.keys(value).length === 0) {
242
+ delete config.alert;
243
+ }
244
+ return {
245
+ enabled: val,
246
+ };
247
+ }
248
+ const rootKey = `alert.${key}.enabled`;
249
+ if (config[rootKey] !== undefined) {
250
+ const enabled = config[rootKey];
251
+ delete config[rootKey];
252
+ return {
253
+ enabled,
254
+ };
255
+ }
256
+ return alertConfig?.[key];
257
+ }
258
+ exports.getAlertKeyValue = getAlertKeyValue;
231
259
  function parseSchedule(schedule) {
232
260
  const EVERY_SYNTAX = '@every';
233
261
  if (!(schedule + '').startsWith(EVERY_SYNTAX)) {
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/push/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/push/monitor.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elastic/synthetics",
3
- "version": "1.1.0",
3
+ "version": "1.3.0",
4
4
  "description": "Elastic synthetic monitoring agent",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -50,9 +50,9 @@
50
50
  "kleur": "^4.1.5",
51
51
  "micromatch": "^4.0.5",
52
52
  "pirates": "^4.0.5",
53
- "playwright-chromium": "=1.32.3",
54
- "playwright-core": "=1.32.3",
55
- "semver": "^7.5.0",
53
+ "playwright-chromium": "=1.35.0",
54
+ "playwright-core": "=1.35.0",
55
+ "semver": "^7.5.2",
56
56
  "sharp": "^0.32.0",
57
57
  "snakecase-keys": "^4.0.1",
58
58
  "sonic-boom": "^3.3.0",
package/src/cli.ts CHANGED
@@ -38,13 +38,7 @@ import { globalSetup } from './loader';
38
38
  import { run } from './';
39
39
  import { runner } from './core';
40
40
  import { SyntheticsLocations } from './dsl/monitor';
41
- import {
42
- push,
43
- loadSettings,
44
- validateSettings,
45
- catchIncorrectSettings,
46
- warnIfThrottled,
47
- } from './push';
41
+ import { push, loadSettings, validatePush, warnIfThrottled } from './push';
48
42
  import {
49
43
  formatLocations,
50
44
  getLocations,
@@ -61,7 +55,7 @@ import { getVersion } from './push/kibana_api';
61
55
  /* eslint-disable-next-line @typescript-eslint/no-var-requires */
62
56
  const { name, version } = require('../package.json');
63
57
 
64
- const { params, pattern, tags, match, playwrightOpts } = getCommonCommandOpts();
58
+ const { params, pattern, playwrightOpts } = getCommonCommandOpts();
65
59
 
66
60
  program
67
61
  .name(`npx ${name}`)
@@ -71,9 +65,12 @@ program
71
65
  'configuration path (default: synthetics.config.js)'
72
66
  )
73
67
  .addOption(pattern)
74
- .addOption(tags)
75
- .addOption(match)
76
68
  .addOption(params)
69
+ .option('--tags <name...>', 'run tests with a tag that matches the glob')
70
+ .option(
71
+ '--match <name>',
72
+ 'run tests with a name or tags that matches the glob'
73
+ )
77
74
  .addOption(
78
75
  new Option('--reporter <value>', `output reporter format`).choices(
79
76
  Object.keys(reporters)
@@ -88,9 +85,10 @@ program
88
85
  'Enable capabilities through feature flags'
89
86
  )
90
87
  .addOption(
91
- new Option('--screenshots [flag]', 'take screenshots at end of each step')
92
- .choices(['on', 'off', 'only-on-failure'])
93
- .default('on')
88
+ new Option(
89
+ '--screenshots [flag]',
90
+ 'take screenshots at end of each step'
91
+ ).choices(['on', 'off', 'only-on-failure'])
94
92
  )
95
93
  .option(
96
94
  '--dry-run',
@@ -133,7 +131,7 @@ program
133
131
  .action(async (cliArgs: CliArgs) => {
134
132
  const tearDown = await globalSetup(cliArgs, program.args);
135
133
  try {
136
- const options = normalizeOptions(cliArgs);
134
+ const options = normalizeOptions(cliArgs, 'run');
137
135
  const results = await run(options);
138
136
  /**
139
137
  * Exit with error status if any journey fails
@@ -193,8 +191,6 @@ program
193
191
  )
194
192
  .option('-y, --yes', 'skip all questions and run non-interactively')
195
193
  .addOption(pattern)
196
- .addOption(tags)
197
- .addOption(match)
198
194
  .addOption(params)
199
195
  .addOption(playwrightOpts)
200
196
  .action(async (cmdOpts: PushOptions) => {
@@ -204,13 +200,15 @@ program
204
200
  ]);
205
201
  try {
206
202
  const settings = await loadSettings();
207
- const options = normalizeOptions({
208
- ...program.opts(),
209
- ...settings,
210
- ...cmdOpts,
211
- }) as PushOptions;
212
- validateSettings(options);
213
- await catchIncorrectSettings(settings, options);
203
+ const options = normalizeOptions(
204
+ {
205
+ ...program.opts(),
206
+ ...settings,
207
+ ...cmdOpts,
208
+ },
209
+ 'push'
210
+ ) as PushOptions;
211
+ await validatePush(options, settings);
214
212
  const monitors = runner.buildMonitors(options);
215
213
  if ((options as CliArgs).throttling == null) {
216
214
  warnIfThrottled(monitors);
@@ -34,7 +34,7 @@ import {
34
34
  } from 'playwright-chromium';
35
35
  import { Step } from './dsl';
36
36
  import { BuiltInReporterName, ReporterInstance } from './reporters';
37
- import { MonitorConfig } from './dsl/monitor';
37
+ import { AlertConfig, MonitorConfig } from './dsl/monitor';
38
38
 
39
39
  export type VoidCallback = () => void;
40
40
  export type Location = {
@@ -201,24 +201,24 @@ type BaseArgs = {
201
201
  params?: Params;
202
202
  screenshots?: ScreenshotOptions;
203
203
  dryRun?: boolean;
204
+ pattern?: string;
204
205
  match?: string;
205
206
  tags?: Array<string>;
206
207
  outfd?: number;
207
208
  wsEndpoint?: string;
208
209
  pauseOnError?: boolean;
209
- ignoreHttpsErrors?: boolean;
210
210
  playwrightOptions?: PlaywrightOptions;
211
211
  quietExitCode?: boolean;
212
212
  throttling?: MonitorConfig['throttling'];
213
213
  schedule?: MonitorConfig['schedule'];
214
214
  locations?: MonitorConfig['locations'];
215
215
  privateLocations?: MonitorConfig['privateLocations'];
216
+ alert?: AlertConfig;
216
217
  };
217
218
 
218
219
  export type CliArgs = BaseArgs & {
219
220
  config?: string;
220
221
  reporter?: BuiltInReporterName;
221
- pattern?: string;
222
222
  inline?: boolean;
223
223
  require?: Array<string>;
224
224
  sandbox?: boolean;
@@ -234,23 +234,16 @@ export type RunOptions = BaseArgs & {
234
234
  trace?: boolean;
235
235
  filmstrips?: boolean;
236
236
  environment?: string;
237
- playwrightOptions?: PlaywrightOptions;
238
237
  networkConditions?: NetworkConditions;
239
238
  reporter?: BuiltInReporterName | ReporterInstance;
240
239
  };
241
240
 
242
- export type PushOptions = Partial<ProjectSettings> & {
243
- auth: string;
244
- schedule?: MonitorConfig['schedule'];
245
- locations?: MonitorConfig['locations'];
246
- privateLocations?: MonitorConfig['privateLocations'];
247
- params?: MonitorConfig['params'];
248
- kibanaVersion?: number;
249
- yes?: boolean;
250
- pattern?: string;
251
- match?: string;
252
- tags?: Array<string>;
253
- };
241
+ export type PushOptions = Partial<ProjectSettings> &
242
+ Partial<BaseArgs> & {
243
+ auth: string;
244
+ kibanaVersion?: number;
245
+ yes?: boolean;
246
+ };
254
247
 
255
248
  export type ProjectSettings = {
256
249
  id: string;
@@ -264,6 +257,7 @@ export type PlaywrightOptions = LaunchOptions &
264
257
  actionTimeout?: number;
265
258
  navigationTimeout?: number;
266
259
  };
260
+
267
261
  export type SyntheticsConfig = {
268
262
  params?: Params;
269
263
  playwrightOptions?: PlaywrightOptions;
@@ -44,6 +44,7 @@ import {
44
44
  RunOptions,
45
45
  JourneyResult,
46
46
  StepResult,
47
+ PushOptions,
47
48
  } from '../common_types';
48
49
  import { PluginManager } from '../plugins';
49
50
  import { PerformanceManager } from '../plugins';
@@ -383,7 +384,7 @@ export default class Runner {
383
384
  await mkdir(CACHE_PATH, { recursive: true });
384
385
  }
385
386
 
386
- buildMonitors(options: RunOptions) {
387
+ buildMonitors(options: PushOptions) {
387
388
  /**
388
389
  * Update the global monitor configuration required for
389
390
  * setting defaults
@@ -395,13 +396,13 @@ export default class Runner {
395
396
  privateLocations: options.privateLocations,
396
397
  params: options.params,
397
398
  playwrightOptions: options.playwrightOptions,
399
+ screenshot: options.screenshots,
400
+ tags: options.tags,
401
+ alert: options.alert,
398
402
  });
399
403
 
400
404
  const monitors: Monitor[] = [];
401
405
  for (const journey of this.journeys) {
402
- if (!journey.isMatch(options.match, options.tags)) {
403
- continue;
404
- }
405
406
  this.#currentJourney = journey;
406
407
  /**
407
408
  * Execute dummy callback to get all monitor specific
@@ -44,6 +44,15 @@ export const ALLOWED_SCHEDULES = [
44
44
  1, 3, 5, 10, 15, 20, 30, 60, 120, 240,
45
45
  ] as const;
46
46
 
47
+ export interface AlertConfig {
48
+ status?: {
49
+ enabled: boolean;
50
+ };
51
+ tls?: {
52
+ enabled: boolean;
53
+ };
54
+ }
55
+
47
56
  export type MonitorConfig = {
48
57
  id?: string;
49
58
  name?: string;
@@ -62,11 +71,7 @@ export type MonitorConfig = {
62
71
  screenshot?: ScreenshotOptions;
63
72
  params?: Params;
64
73
  playwrightOptions?: PlaywrightOptions;
65
- alert?: {
66
- status: {
67
- enabled: boolean;
68
- };
69
- };
74
+ alert?: AlertConfig;
70
75
  };
71
76
 
72
77
  type MonitorFilter = {
@@ -86,7 +91,10 @@ export class Monitor {
86
91
  update(globalOpts: MonitorConfig = {}) {
87
92
  this.config = merge(globalOpts, this.config, {
88
93
  arrayMerge(target, source) {
89
- return [...new Set(source)];
94
+ if (source && source.length > 0) {
95
+ return [...new Set(source)];
96
+ }
97
+ return target;
90
98
  },
91
99
  });
92
100
  }
package/src/options.ts CHANGED
@@ -26,10 +26,15 @@
26
26
  import merge from 'deepmerge';
27
27
  import { createOption } from 'commander';
28
28
  import { readConfig } from './config';
29
- import type { CliArgs, RunOptions } from './common_types';
30
- import { THROTTLING_WARNING_MSG, warn } from './helpers';
29
+ import type { CliArgs, PushOptions, RunOptions } from './common_types';
30
+ import { THROTTLING_WARNING_MSG, error, warn } from './helpers';
31
31
 
32
- export function normalizeOptions(cliArgs: CliArgs): RunOptions {
32
+ type Mode = 'run' | 'push';
33
+
34
+ export function normalizeOptions(
35
+ cliArgs: CliArgs,
36
+ mode: Mode = 'run'
37
+ ): RunOptions {
33
38
  const options: RunOptions = {
34
39
  ...cliArgs,
35
40
  environment: process.env['NODE_ENV'] || 'development',
@@ -107,16 +112,39 @@ export function normalizeOptions(cliArgs: CliArgs): RunOptions {
107
112
  };
108
113
 
109
114
  /**
110
- * Get the default monitor config from synthetics.config.ts file
115
+ * Merge default options based on the mode of operation whether we are running tests locally
116
+ * or pushing the project monitors
111
117
  */
112
- const monitor = config.monitor;
118
+ switch (mode) {
119
+ case 'run':
120
+ options.screenshots = cliArgs.screenshots ?? 'on';
121
+ break;
122
+ case 'push':
123
+ validatePushOptions(options as PushOptions);
124
+ /**
125
+ * Merge the default monitor config from synthetics.config.ts file
126
+ * with the CLI options passed via push command
127
+ */
128
+ const monitor = config.monitor;
129
+ for (const key of Object.keys(monitor || {})) {
130
+ // screenshots require special handling as the flags are different
131
+ if (key === 'screenshot') {
132
+ options.screenshots = options.screenshots ?? monitor[key];
133
+ continue;
134
+ }
135
+ options[key] = options[key] ?? monitor[key];
136
+ }
137
+ break;
138
+ }
139
+ return options;
140
+ }
113
141
 
114
- options.schedule = cliArgs.schedule ?? monitor?.schedule;
115
- options.locations = cliArgs.locations ?? monitor?.locations;
116
- options.privateLocations =
117
- cliArgs.privateLocations ?? monitor?.privateLocations;
142
+ export function validatePushOptions(opts: PushOptions) {
143
+ if (opts.tags || opts.match) {
144
+ throw error(`Aborted. Invalid CLI flags.
118
145
 
119
- return options;
146
+ Tags and Match are not supported in push command.`);
147
+ }
120
148
  }
121
149
 
122
150
  /* eslint-disable-next-line @typescript-eslint/no-unused-vars */
@@ -156,20 +184,10 @@ export function getCommonCommandOpts() {
156
184
  '--pattern <pattern>',
157
185
  'RegExp pattern to match journey/monitor files that are different from the default (ex: /*.journey.(ts|js)$/)'
158
186
  );
159
- const tags = createOption(
160
- '--tags <name...>',
161
- 'run/push tests with a tag that matches the glob'
162
- );
163
- const match = createOption(
164
- '--match <name>',
165
- 'run/push tests with a name or tags that matches the glob'
166
- );
167
187
 
168
188
  return {
169
189
  params,
170
190
  playwrightOpts,
171
191
  pattern,
172
- tags,
173
- match,
174
192
  };
175
193
  }
@@ -23,6 +23,7 @@
23
23
  *
24
24
  */
25
25
 
26
+ import type { ConsoleMessage } from 'playwright-core';
26
27
  import { BrowserMessage, Driver } from '../common_types';
27
28
  import { log } from '../core/logger';
28
29
  import { Step } from '../dsl';
@@ -36,7 +37,7 @@ export class BrowserConsole {
36
37
 
37
38
  constructor(private driver: Driver) {}
38
39
 
39
- private consoleEventListener = msg => {
40
+ private consoleEventListener = (msg: ConsoleMessage) => {
40
41
  if (!this._currentStep) {
41
42
  return;
42
43
  }
@@ -78,12 +79,12 @@ export class BrowserConsole {
78
79
 
79
80
  start() {
80
81
  log(`Plugins: started collecting console events`);
81
- this.driver.page.on('console', this.consoleEventListener);
82
+ this.driver.context.on('console', this.consoleEventListener);
82
83
  this.driver.page.on('pageerror', this.pageErrorEventListener);
83
84
  }
84
85
 
85
86
  stop() {
86
- this.driver.page.off('console', this.consoleEventListener);
87
+ this.driver.context.off('console', this.consoleEventListener);
87
88
  this.driver.page.off('pageerror', this.pageErrorEventListener);
88
89
  log(`Plugins: stopped collecting console events`);
89
90
  return this.messages;
package/src/push/index.ts CHANGED
@@ -174,6 +174,14 @@ ${INSTALLATION_HELP}`);
174
174
  }
175
175
  }
176
176
 
177
+ export async function validatePush(
178
+ opts: PushOptions,
179
+ settings: ProjectSettings
180
+ ) {
181
+ validateSettings(opts);
182
+ await catchIncorrectSettings(settings, opts);
183
+ }
184
+
177
185
  export function validateSettings(opts: PushOptions) {
178
186
  const INVALID = 'Aborted. Invalid synthetics project settings.';
179
187
 
@@ -28,9 +28,14 @@ import { extname, join } from 'path';
28
28
  import { LineCounter, parseDocument, YAMLSeq, YAMLMap } from 'yaml';
29
29
  import { bold, red } from 'kleur/colors';
30
30
  import { Bundler } from './bundler';
31
- import { SYNTHETICS_PATH, totalist, indent, warn, isMatch } from '../helpers';
31
+ import { SYNTHETICS_PATH, totalist, indent, warn } from '../helpers';
32
32
  import { LocationsMap } from '../locations/public-locations';
33
- import { ALLOWED_SCHEDULES, Monitor, MonitorConfig } from '../dsl/monitor';
33
+ import {
34
+ AlertConfig,
35
+ ALLOWED_SCHEDULES,
36
+ Monitor,
37
+ MonitorConfig,
38
+ } from '../dsl/monitor';
34
39
  import { PushOptions } from '../common_types';
35
40
  import { isParamOptionSupported } from './utils';
36
41
 
@@ -198,10 +203,6 @@ export async function createLightweightMonitors(
198
203
  continue;
199
204
  }
200
205
  const config = monNode.toJSON();
201
- // Filter based on matched tags and name
202
- if (!isMatch(config.tags, config.name, options.tags, options.match)) {
203
- continue;
204
- }
205
206
  const { line, col } = lineCounter.linePos(monNode.srcToken.offset);
206
207
  try {
207
208
  const mon = buildMonitorFromYaml(config, options);
@@ -232,12 +233,14 @@ export function buildMonitorFromYaml(
232
233
  }
233
234
  const schedule = config.schedule && parseSchedule(String(config.schedule));
234
235
  const privateLocations =
235
- config['private_locations'] || options.privateLocations;
236
+ config['private_locations'] ||
237
+ config.privateLocations ||
238
+ options.privateLocations;
236
239
  delete config['private_locations'];
237
-
238
- const alertConfig = parseAlertConfig(config);
240
+ const alertConfig = parseAlertConfig(config, options.alert);
239
241
  const mon = new Monitor({
240
242
  locations: options.locations,
243
+ tags: options.tags,
241
244
  ...config,
242
245
  privateLocations,
243
246
  schedule: schedule || options.schedule,
@@ -254,18 +257,56 @@ export function buildMonitorFromYaml(
254
257
  return mon;
255
258
  }
256
259
 
257
- export const parseAlertConfig = (config: MonitorConfig) => {
258
- if (config['alert.status.enabled'] !== undefined) {
259
- const value = config['alert.status.enabled'];
260
- delete config['alert.status.enabled'];
260
+ export const parseAlertConfig = (
261
+ config: MonitorConfig,
262
+ gConfig?: AlertConfig
263
+ ) => {
264
+ // If the user has provided a global alert config, merge it with the monitor alert config
265
+ const status = getAlertKeyValue('status', config, gConfig);
266
+ const tls = getAlertKeyValue('tls', config, gConfig);
267
+ const result = {};
268
+ if (status) {
269
+ result['status'] = status;
270
+ }
271
+ if (tls) {
272
+ result['tls'] = tls;
273
+ }
274
+ return Object.keys(result).length > 0 ? result : undefined;
275
+ };
276
+
277
+ export function getAlertKeyValue(
278
+ key: 'status' | 'tls',
279
+ config: MonitorConfig,
280
+ alertConfig?: AlertConfig
281
+ ): { enabled: boolean } {
282
+ const value = config.alert;
283
+ if (value?.[key]?.enabled !== undefined) {
261
284
  return {
262
- status: {
263
- enabled: value,
264
- },
285
+ enabled: value[key].enabled,
265
286
  };
266
287
  }
267
- return config.alert;
268
- };
288
+
289
+ if (value?.[`${key}.enabled`] !== undefined) {
290
+ const val = value?.[`${key}.enabled`];
291
+ delete value?.[`${key}.enabled`];
292
+ if (Object.keys(value).length === 0) {
293
+ delete config.alert;
294
+ }
295
+ return {
296
+ enabled: val,
297
+ };
298
+ }
299
+ const rootKey = `alert.${key}.enabled`;
300
+ if (config[rootKey] !== undefined) {
301
+ const enabled = config[rootKey];
302
+ delete config[rootKey];
303
+ return {
304
+ enabled,
305
+ };
306
+ }
307
+
308
+ return alertConfig?.[key];
309
+ }
269
310
 
270
311
  export function parseSchedule(schedule: string) {
271
312
  const EVERY_SYNTAX = '@every';