@brillout/test-e2e 0.5.9 → 0.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/Logs.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export { expectError };
1
+ export { expectLog };
2
2
  export declare const Logs: {
3
3
  add: typeof add;
4
4
  flushLogs: typeof flushLogs;
@@ -25,4 +25,4 @@ declare function add({ logSource, logText, loggedAfterExit, }: {
25
25
  logText: string;
26
26
  loggedAfterExit?: boolean;
27
27
  }): void;
28
- declare function expectError(userFilter: (logEntry: LogEntry) => boolean): void;
28
+ declare function expectLog(logText: string, logFilter?: (logEntry: LogEntry) => boolean): void;
package/dist/Logs.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Logs = exports.expectError = void 0;
6
+ exports.Logs = exports.expectLog = void 0;
7
7
  exports.Logs = {
8
8
  add,
9
9
  flushLogs,
@@ -17,7 +17,7 @@ const picocolors_1 = __importDefault(require("picocolors"));
17
17
  const getCurrentTest_1 = require("./getCurrentTest");
18
18
  const logSection_1 = require("./logSection");
19
19
  const isTolerateError_1 = require("./Logs/isTolerateError");
20
- const expect_1 = require("./chai/expect");
20
+ const strip_ansi_1 = __importDefault(require("strip-ansi"));
21
21
  let logEntries = [];
22
22
  function hasFailLogs(failOnWarning) {
23
23
  const failLogs = getErrorLogs(failOnWarning);
@@ -75,17 +75,25 @@ function add({ logSource, logText, loggedAfterExit = false, }) {
75
75
  printLog(logEntry);
76
76
  }
77
77
  }
78
- function expectError(userFilter) {
79
- const logFounds = logEntries.filter((logEntry) => {
80
- if (userFilter(logEntry)) {
78
+ function expectLog(logText, logFilter) {
79
+ const logsFound = logEntries.filter((logEntry) => {
80
+ if ((0, strip_ansi_1.default)(logEntry.logText).includes(logText)) {
81
81
  logEntry.isNotFailure = true;
82
82
  return true;
83
83
  }
84
84
  return false;
85
85
  });
86
- (0, expect_1.expect)(logFounds.length).not.toBe(0);
86
+ const logsFoundWithFilter = logsFound.filter((logEntry) => logFilter?.(logEntry));
87
+ if (logsFoundWithFilter.length === 0) {
88
+ if (logsFound.length === 0) {
89
+ throw new Error(`The following log was expected but wasn't logged: "${logText}"`);
90
+ }
91
+ else {
92
+ throw new Error(`The following log was logged as expected, but it didn't match the logFilter() you provided`);
93
+ }
94
+ }
87
95
  }
88
- exports.expectError = expectError;
96
+ exports.expectLog = expectLog;
89
97
  function getTimestamp() {
90
98
  const now = new Date();
91
99
  const time = now.toTimeString().split(' ')[0];
@@ -0,0 +1,5 @@
1
+ export { fetch };
2
+ export { fetchHtml };
3
+ import fetch_ from 'node-fetch';
4
+ declare function fetchHtml(pathname: string): Promise<string>;
5
+ declare function fetch(...args: Parameters<typeof fetch_>): Promise<import("node-fetch").Response>;
package/dist/fetch.js ADDED
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.fetchHtml = exports.fetch = void 0;
7
+ const getCurrentTest_1 = require("./getCurrentTest");
8
+ const node_fetch_1 = __importDefault(require("node-fetch"));
9
+ const Logs_1 = require("./Logs");
10
+ async function fetchHtml(pathname) {
11
+ const response = await fetch((0, getCurrentTest_1.getServerUrl)() + pathname);
12
+ const html = await response.text();
13
+ return html;
14
+ }
15
+ exports.fetchHtml = fetchHtml;
16
+ async function fetch(...args) {
17
+ try {
18
+ return await (0, node_fetch_1.default)(...args);
19
+ }
20
+ catch (err) {
21
+ Logs_1.Logs.add({
22
+ logSource: 'Connection Error',
23
+ logText: `Couldn't connect to \`${args[0]}\`. Args: \`${JSON.stringify(args.slice(1))}\`. Err: \`${
24
+ // @ts-ignore
25
+ err.message}\``,
26
+ });
27
+ throw new Error("Couldn't connect to server. See `Connection Error` log for more details.");
28
+ }
29
+ }
30
+ exports.fetch = fetch;
@@ -4,6 +4,7 @@ export { setCurrentTest };
4
4
  export { getRunInfo };
5
5
  export { setRunInfo };
6
6
  export { getCwd };
7
+ export { getServerUrl };
7
8
  export type { TestInfo };
8
9
  import type { Page } from 'playwright-chromium';
9
10
  declare type TestInfo = {
@@ -55,3 +56,4 @@ declare function setRunInfo({ cmd, serverUrl, additionalTimeout, doNotFailOnWarn
55
56
  isRunCommandThatTerminates?: boolean;
56
57
  }): void;
57
58
  declare function getCwd(): string;
59
+ declare function getServerUrl(): string;
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getCwd = exports.setRunInfo = exports.getRunInfo = exports.setCurrentTest = exports.getCurrentTestOptional = exports.getCurrentTest = void 0;
6
+ exports.getServerUrl = exports.getCwd = exports.setRunInfo = exports.getRunInfo = exports.setCurrentTest = exports.getCurrentTestOptional = exports.getCurrentTest = void 0;
7
7
  const utils_1 = require("./utils");
8
8
  const path_1 = __importDefault(require("path"));
9
9
  const TIMEOUTS_1 = require("./TIMEOUTS");
@@ -69,3 +69,9 @@ function getCwd() {
69
69
  return cwd;
70
70
  }
71
71
  exports.getCwd = getCwd;
72
+ function getServerUrl() {
73
+ const testInfo = getCurrentTest();
74
+ const serverUrl = testInfo.runInfo?.serverUrl;
75
+ return serverUrl;
76
+ }
77
+ exports.getServerUrl = getServerUrl;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,14 @@
1
- export * from './setup';
2
1
  export { expect } from './chai/expect';
3
2
  export { test } from './test';
4
3
  export { page } from './page';
5
4
  export { editFile, editFileRevert } from './editFile';
6
5
  export { testScreenshotFixture } from './testScreenshotFixture';
6
+ export { partRegex } from '@brillout/part-regex';
7
+ export { autoRetry } from './autoRetry';
8
+ export { fetch, fetchHtml } from './fetch';
9
+ export { expectLog } from './Logs';
10
+ export { run } from './run';
11
+ export { skip } from './skip';
12
+ export { isMinNodeVersion, isCI, isLinux, isWindows, isMac, sleep } from './utils';
13
+ export { getServerUrl } from './getCurrentTest';
14
+ export { runCommandThatTerminates } from './runCommandThatTerminates';
package/dist/index.js CHANGED
@@ -1,21 +1,6 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.testScreenshotFixture = exports.editFileRevert = exports.editFile = exports.page = exports.test = exports.expect = void 0;
18
- __exportStar(require("./setup"), exports);
3
+ exports.runCommandThatTerminates = exports.getServerUrl = exports.sleep = exports.isMac = exports.isWindows = exports.isLinux = exports.isCI = exports.isMinNodeVersion = exports.skip = exports.run = exports.expectLog = exports.fetchHtml = exports.fetch = exports.autoRetry = exports.partRegex = exports.testScreenshotFixture = exports.editFileRevert = exports.editFile = exports.page = exports.test = exports.expect = void 0;
19
4
  var expect_1 = require("./chai/expect");
20
5
  Object.defineProperty(exports, "expect", { enumerable: true, get: function () { return expect_1.expect; } });
21
6
  var test_1 = require("./test");
@@ -27,3 +12,27 @@ Object.defineProperty(exports, "editFile", { enumerable: true, get: function ()
27
12
  Object.defineProperty(exports, "editFileRevert", { enumerable: true, get: function () { return editFile_1.editFileRevert; } });
28
13
  var testScreenshotFixture_1 = require("./testScreenshotFixture");
29
14
  Object.defineProperty(exports, "testScreenshotFixture", { enumerable: true, get: function () { return testScreenshotFixture_1.testScreenshotFixture; } });
15
+ var part_regex_1 = require("@brillout/part-regex");
16
+ Object.defineProperty(exports, "partRegex", { enumerable: true, get: function () { return part_regex_1.partRegex; } });
17
+ var autoRetry_1 = require("./autoRetry");
18
+ Object.defineProperty(exports, "autoRetry", { enumerable: true, get: function () { return autoRetry_1.autoRetry; } });
19
+ var fetch_1 = require("./fetch");
20
+ Object.defineProperty(exports, "fetch", { enumerable: true, get: function () { return fetch_1.fetch; } });
21
+ Object.defineProperty(exports, "fetchHtml", { enumerable: true, get: function () { return fetch_1.fetchHtml; } });
22
+ var Logs_1 = require("./Logs");
23
+ Object.defineProperty(exports, "expectLog", { enumerable: true, get: function () { return Logs_1.expectLog; } });
24
+ var run_1 = require("./run");
25
+ Object.defineProperty(exports, "run", { enumerable: true, get: function () { return run_1.run; } });
26
+ var skip_1 = require("./skip");
27
+ Object.defineProperty(exports, "skip", { enumerable: true, get: function () { return skip_1.skip; } });
28
+ var utils_1 = require("./utils");
29
+ Object.defineProperty(exports, "isMinNodeVersion", { enumerable: true, get: function () { return utils_1.isMinNodeVersion; } });
30
+ Object.defineProperty(exports, "isCI", { enumerable: true, get: function () { return utils_1.isCI; } });
31
+ Object.defineProperty(exports, "isLinux", { enumerable: true, get: function () { return utils_1.isLinux; } });
32
+ Object.defineProperty(exports, "isWindows", { enumerable: true, get: function () { return utils_1.isWindows; } });
33
+ Object.defineProperty(exports, "isMac", { enumerable: true, get: function () { return utils_1.isMac; } });
34
+ Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return utils_1.sleep; } });
35
+ var getCurrentTest_1 = require("./getCurrentTest");
36
+ Object.defineProperty(exports, "getServerUrl", { enumerable: true, get: function () { return getCurrentTest_1.getServerUrl; } });
37
+ var runCommandThatTerminates_1 = require("./runCommandThatTerminates");
38
+ Object.defineProperty(exports, "runCommandThatTerminates", { enumerable: true, get: function () { return runCommandThatTerminates_1.runCommandThatTerminates; } });
package/dist/run.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ export { run };
2
+ declare function run(cmd: string, { additionalTimeout, serverIsReadyMessage, serverIsReadyDelay, inspect, cwd, doNotFailOnWarning, serverUrl, isFlaky, }?: {
3
+ additionalTimeout?: number;
4
+ serverIsReadyMessage?: string | ((log: string) => boolean);
5
+ serverIsReadyDelay?: number;
6
+ inspect?: boolean;
7
+ /** deprecated */
8
+ cwd?: string;
9
+ doNotFailOnWarning?: boolean;
10
+ serverUrl?: string;
11
+ isFlaky?: boolean;
12
+ }): void;
@@ -1,35 +1,13 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.runCommandThatTerminates = exports.getServerUrl = exports.sleep = exports.isMac = exports.isWindows = exports.isLinux = exports.isCI = exports.isMinNodeVersion = exports.skip = exports.run = exports.expectError = exports.fetch = exports.fetchHtml = exports.autoRetry = exports.partRegex = void 0;
7
- var part_regex_1 = require("@brillout/part-regex");
8
- Object.defineProperty(exports, "partRegex", { enumerable: true, get: function () { return part_regex_1.partRegex; } });
9
- var autoRetry_1 = require("./autoRetry");
10
- Object.defineProperty(exports, "autoRetry", { enumerable: true, get: function () { return autoRetry_1.autoRetry; } });
11
- var Logs_1 = require("./Logs");
12
- Object.defineProperty(exports, "expectError", { enumerable: true, get: function () { return Logs_1.expectError; } });
13
- var runCommandThatTerminates_1 = require("./runCommandThatTerminates");
14
- Object.defineProperty(exports, "runCommandThatTerminates", { enumerable: true, get: function () { return runCommandThatTerminates_1.runCommandThatTerminates; } });
3
+ exports.run = void 0;
15
4
  const utils_1 = require("./utils");
16
- Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return utils_1.sleep; } });
17
- Object.defineProperty(exports, "isWindows", { enumerable: true, get: function () { return utils_1.isWindows; } });
18
- Object.defineProperty(exports, "isLinux", { enumerable: true, get: function () { return utils_1.isLinux; } });
19
- Object.defineProperty(exports, "isCI", { enumerable: true, get: function () { return utils_1.isCI; } });
20
- Object.defineProperty(exports, "isMac", { enumerable: true, get: function () { return utils_1.isMac; } });
21
- const node_fetch_1 = __importDefault(require("node-fetch"));
22
5
  const utils_2 = require("./utils");
23
- const Logs_2 = require("./Logs");
6
+ const Logs_1 = require("./Logs");
24
7
  const editFile_1 = require("./editFile");
25
8
  const getCurrentTest_1 = require("./getCurrentTest");
26
9
  const page_1 = require("./page");
27
10
  const TIMEOUTS_1 = require("./TIMEOUTS");
28
- function skip(reason) {
29
- const testInfo = (0, getCurrentTest_1.getCurrentTest)();
30
- testInfo.skipped = { reason };
31
- }
32
- exports.skip = skip;
33
11
  function run(cmd, {
34
12
  //baseUrl = '',
35
13
  additionalTimeout = 0, serverIsReadyMessage, serverIsReadyDelay = 1000, inspect = utils_1.cliConfig.inspect, cwd, doNotFailOnWarning, serverUrl, isFlaky, } = {}) {
@@ -43,7 +21,7 @@ additionalTimeout = 0, serverIsReadyMessage, serverIsReadyDelay = 1000, inspect
43
21
  isFlaky,
44
22
  });
45
23
  if (inspect) {
46
- Logs_2.Logs.logEagerly = true;
24
+ Logs_1.Logs.logEagerly = true;
47
25
  }
48
26
  const testInfo = (0, getCurrentTest_1.getCurrentTest)();
49
27
  let runProcess = null;
@@ -77,7 +55,7 @@ additionalTimeout = 0, serverIsReadyMessage, serverIsReadyDelay = 1000, inspect
77
55
  }
78
56
  };
79
57
  testInfo.terminateServer = async () => {
80
- Logs_2.Logs.add({
58
+ Logs_1.Logs.add({
81
59
  logSource: 'run()',
82
60
  logText: 'Terminate server.',
83
61
  });
@@ -92,7 +70,7 @@ additionalTimeout = 0, serverIsReadyMessage, serverIsReadyDelay = 1000, inspect
92
70
  // Also called when the page throws an error or a warning
93
71
  function onConsole(msg) {
94
72
  const type = msg.type();
95
- Logs_2.Logs.add({
73
+ Logs_1.Logs.add({
96
74
  logSource: (() => {
97
75
  if (type === 'error') {
98
76
  return 'Browser Error';
@@ -112,7 +90,7 @@ additionalTimeout = 0, serverIsReadyMessage, serverIsReadyDelay = 1000, inspect
112
90
  }
113
91
  // For uncaught exceptions
114
92
  function onPageError(err) {
115
- Logs_2.Logs.add({
93
+ Logs_1.Logs.add({
116
94
  logSource: 'Browser Error',
117
95
  logText: JSON.stringify({
118
96
  text: err.message,
@@ -136,7 +114,7 @@ async function startProcess({ serverIsReadyMessage, serverIsReadyDelay, addition
136
114
  return serverIsReady;
137
115
  };
138
116
  }
139
- Logs_2.Logs.add({
117
+ Logs_1.Logs.add({
140
118
  logSource: 'run()',
141
119
  logText: `Spawn command \`${cmd}\``,
142
120
  });
@@ -148,14 +126,14 @@ async function startProcess({ serverIsReadyMessage, serverIsReadyDelay, addition
148
126
  isReadyTimeout: TIMEOUTS_1.TIMEOUT_NPM_SCRIPT + additionalTimeout,
149
127
  killPort: process.env.CI || !(0, utils_1.isLinux)() ? false : getServerPort(),
150
128
  onStderr(data, { loggedAfterExit }) {
151
- Logs_2.Logs.add({
129
+ Logs_1.Logs.add({
152
130
  logSource: 'stderr',
153
131
  logText: data,
154
132
  loggedAfterExit,
155
133
  });
156
134
  },
157
135
  onStdout(data, { loggedAfterExit }) {
158
- Logs_2.Logs.add({
136
+ Logs_1.Logs.add({
159
137
  logSource: 'stdout',
160
138
  logText: data,
161
139
  loggedAfterExit,
@@ -163,20 +141,20 @@ async function startProcess({ serverIsReadyMessage, serverIsReadyDelay, addition
163
141
  },
164
142
  onExit(errMsg) {
165
143
  if (!errMsg) {
166
- Logs_2.Logs.add({
144
+ Logs_1.Logs.add({
167
145
  logSource: 'run()',
168
146
  logText: `Process termination (expected)`,
169
147
  });
170
148
  }
171
149
  else {
172
- Logs_2.Logs.add({
150
+ Logs_1.Logs.add({
173
151
  logSource: 'run() failure',
174
152
  logText: errMsg,
175
153
  });
176
154
  }
177
155
  },
178
156
  onTerminationError(errMsg) {
179
- Logs_2.Logs.add({
157
+ Logs_1.Logs.add({
180
158
  logSource: 'run() failure',
181
159
  logText: errMsg,
182
160
  });
@@ -194,69 +172,15 @@ async function startProcess({ serverIsReadyMessage, serverIsReadyDelay, addition
194
172
  done(!!err);
195
173
  if (err)
196
174
  throw err;
197
- Logs_2.Logs.add({
175
+ Logs_1.Logs.add({
198
176
  logSource: 'run()',
199
177
  logText: 'Server is ready.',
200
178
  });
201
179
  await (0, utils_1.sleep)(serverIsReadyDelay);
202
180
  return { terminate };
203
181
  }
204
- async function fetchHtml(pathname) {
205
- const response = await fetch(getServerUrl() + pathname);
206
- const html = await response.text();
207
- return html;
208
- }
209
- exports.fetchHtml = fetchHtml;
210
- async function fetch(...args) {
211
- try {
212
- return await (0, node_fetch_1.default)(...args);
213
- }
214
- catch (err) {
215
- Logs_2.Logs.add({
216
- logSource: 'Connection Error',
217
- logText: `Couldn't connect to \`${args[0]}\`. Args: \`${JSON.stringify(args.slice(1))}\`. Err: \`${
218
- // @ts-ignore
219
- err.message}\``,
220
- });
221
- throw new Error("Couldn't connect to server. See `Connection Error` log for more details.");
222
- }
223
- }
224
- exports.fetch = fetch;
225
- /*
226
- async function bailOnTimeout(asyncFunc: () => Promise<void>, { timeout }: { timeout: number }) {
227
- let resolve: () => void
228
- let reject: (err: Error) => void
229
- const promise = new Promise<void>((_resolve, _reject) => {
230
- resolve = _resolve
231
- reject = _reject
232
- })
233
-
234
- const t = setTimeout(() => {
235
- reject(new Error(`Function timeout.`))
236
- }, timeout)
237
- await asyncFunc()
238
- clearTimeout(t)
239
- resolve()
240
-
241
- return promise
242
- }
243
- */
244
- function isMinNodeVersion(minNodeVersion) {
245
- const { version } = process;
246
- (0, utils_2.assert)(version.startsWith('v'));
247
- const major = parseInt(version[1] + version[2], 10);
248
- (0, utils_2.assert)(12 <= major && major <= 50);
249
- return major >= minNodeVersion;
250
- }
251
- exports.isMinNodeVersion = isMinNodeVersion;
252
- function getServerUrl() {
253
- const testInfo = (0, getCurrentTest_1.getCurrentTest)();
254
- const serverUrl = testInfo.runInfo?.serverUrl;
255
- return serverUrl;
256
- }
257
- exports.getServerUrl = getServerUrl;
258
182
  function getServerPort() {
259
- const serverUrl = getServerUrl();
183
+ const serverUrl = (0, getCurrentTest_1.getServerUrl)();
260
184
  const portStr = serverUrl.split(':').slice(-1)[0].split('/')[0];
261
185
  (0, utils_2.assert)(/\d+/.test(portStr), { serverUrl });
262
186
  const port = parseInt(portStr, 10);
package/dist/runAll.js CHANGED
@@ -76,17 +76,23 @@ async function buildAndTest(testFile, browser, isSecondAttempt) {
76
76
  (0, logError_1.logError)(execErr);
77
77
  return false;
78
78
  }
79
- // When user calls run runCommandThatTerminates()
80
- {
81
- const testInfo = (0, getCurrentTest_1.getCurrentTest)();
79
+ // When user calls skip()
80
+ const testInfo = (0, getCurrentTest_1.getCurrentTest)();
81
+ if (testInfo.skipped) {
82
+ assertSkipUsage(testInfo);
83
+ (0, logTestStatus_1.logWarn)(testInfo.skipped.reason);
84
+ return true;
85
+ }
86
+ else {
82
87
  // Set when user calls run() or runCommandThatTerminates()
83
88
  (0, utils_1.assert)(testInfo.runInfo);
84
- if (testInfo.runInfo.isRunCommandThatTerminates) {
85
- (0, utils_1.assertUsage)(!testInfo.tests, "Can't call test() when calling runCommandThatTerminates()");
86
- (0, utils_1.assertUsage)(!testInfo.startServer, "Can't call run() when calling runCommandThatTerminates()");
87
- (0, logTestStatus_1.logPass)();
88
- return true;
89
- }
89
+ }
90
+ // When user calls run runCommandThatTerminates()
91
+ if (testInfo.runInfo.isRunCommandThatTerminates) {
92
+ (0, utils_1.assertUsage)(!testInfo.tests, "Can't call test() when calling runCommandThatTerminates()");
93
+ (0, utils_1.assertUsage)(!testInfo.startServer, "Can't call run() when calling runCommandThatTerminates()");
94
+ (0, logTestStatus_1.logPass)();
95
+ return true;
90
96
  }
91
97
  const success = await runServerAndTests(browser, isSecondAttempt);
92
98
  (0, getCurrentTest_2.setCurrentTest)(null);
@@ -94,12 +100,6 @@ async function buildAndTest(testFile, browser, isSecondAttempt) {
94
100
  }
95
101
  async function runServerAndTests(browser, isSecondAttempt) {
96
102
  const testInfo = (0, getCurrentTest_1.getCurrentTest)();
97
- // Set when user calls skip()
98
- if (testInfo.skipped) {
99
- assertSkipUsage(testInfo);
100
- (0, logTestStatus_1.logWarn)(testInfo.skipped.reason);
101
- return true;
102
- }
103
103
  // Set when user calls run()
104
104
  (0, utils_1.assert)(testInfo.runInfo);
105
105
  (0, utils_1.assert)(testInfo.startServer);
@@ -127,7 +127,7 @@ async function runServerAndTests(browser, isSecondAttempt) {
127
127
  if (success) {
128
128
  const failOnWarning = true;
129
129
  if (Logs_1.Logs.hasFailLogs(failOnWarning) &&
130
- // See comments about taskkill in src/setup.ts
130
+ // See comments about taskkill in src/utils/runCommandLongRunning.ts
131
131
  !(0, utils_1.isWindows)()) {
132
132
  logFailure(null, `${getErrorType(failOnWarning)} occurred during server termination`, isFinalAttempt);
133
133
  success = false;
package/dist/skip.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ export { skip };
2
+ declare function skip(reason: string): void;
package/dist/skip.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.skip = void 0;
4
+ const getCurrentTest_1 = require("./getCurrentTest");
5
+ function skip(reason) {
6
+ const testInfo = (0, getCurrentTest_1.getCurrentTest)();
7
+ testInfo.skipped = { reason };
8
+ }
9
+ exports.skip = skip;
@@ -12,3 +12,4 @@ export * from './fsWindowsBugWorkaround';
12
12
  export * from './isObject';
13
13
  export * from './isCallable';
14
14
  export * from './platform';
15
+ export * from './isMinNodeVersion';
@@ -28,3 +28,4 @@ __exportStar(require("./fsWindowsBugWorkaround"), exports);
28
28
  __exportStar(require("./isObject"), exports);
29
29
  __exportStar(require("./isCallable"), exports);
30
30
  __exportStar(require("./platform"), exports);
31
+ __exportStar(require("./isMinNodeVersion"), exports);
@@ -0,0 +1,2 @@
1
+ export { isMinNodeVersion };
2
+ declare function isMinNodeVersion(minNodeVersion: 14): boolean;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isMinNodeVersion = void 0;
4
+ const assert_1 = require("./assert");
5
+ function isMinNodeVersion(minNodeVersion) {
6
+ const { version } = process;
7
+ (0, assert_1.assert)(version.startsWith('v'));
8
+ const major = parseInt(version[1] + version[2], 10);
9
+ (0, assert_1.assert)(12 <= major && major <= 50);
10
+ return major >= minNodeVersion;
11
+ }
12
+ exports.isMinNodeVersion = isMinNodeVersion;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brillout/test-e2e",
3
- "version": "0.5.9",
3
+ "version": "0.5.10",
4
4
  "bin": "./bin.js",
5
5
  "main": "./dist/index.js",
6
6
  "scripts": {
package/dist/setup.d.ts DELETED
@@ -1,33 +0,0 @@
1
- export { partRegex } from '@brillout/part-regex';
2
- export { autoRetry } from './autoRetry';
3
- export { fetchHtml };
4
- export { fetch };
5
- export { expectError } from './Logs';
6
- export { run };
7
- export { skip };
8
- export { isMinNodeVersion };
9
- export { isCI };
10
- export { isLinux };
11
- export { isWindows };
12
- export { isMac };
13
- export { sleep };
14
- export { getServerUrl };
15
- export { runCommandThatTerminates } from './runCommandThatTerminates';
16
- import { sleep, isWindows, isLinux, isCI, isMac } from './utils';
17
- import fetch_ from 'node-fetch';
18
- declare function skip(reason: string): void;
19
- declare function run(cmd: string, { additionalTimeout, serverIsReadyMessage, serverIsReadyDelay, inspect, cwd, doNotFailOnWarning, serverUrl, isFlaky, }?: {
20
- additionalTimeout?: number;
21
- serverIsReadyMessage?: string | ((log: string) => boolean);
22
- serverIsReadyDelay?: number;
23
- inspect?: boolean;
24
- /** deprecated */
25
- cwd?: string;
26
- doNotFailOnWarning?: boolean;
27
- serverUrl?: string;
28
- isFlaky?: boolean;
29
- }): void;
30
- declare function fetchHtml(pathname: string): Promise<string>;
31
- declare function fetch(...args: Parameters<typeof fetch_>): Promise<import("node-fetch").Response>;
32
- declare function isMinNodeVersion(minNodeVersion: 14): boolean;
33
- declare function getServerUrl(): string;