Socket
Socket
Sign inDemoInstall

@web/test-runner-playwright

Package Overview
Dependencies
Maintainers
7
Versions
84
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@web/test-runner-playwright - npm Package Compare versions

Comparing version 0.5.6 to 0.5.7

9

CHANGELOG.md
# @web/test-runner-playwright
## 0.5.7
### Patch Changes
- cde5d29: add browser logging for all browser launchers
- Updated dependencies [cde5d29]
- Updated dependencies [cde5d29]
- @web/test-runner-core@0.7.15
## 0.5.6

@@ -4,0 +13,0 @@

3

dist/PlaywrightLauncherPage.d.ts

@@ -9,3 +9,2 @@ import { Page } from 'playwright';

private nativeInstrumentationEnabledOnPage;
private logs;
private testURL?;

@@ -17,5 +16,3 @@ private navigations;

private collectTestCoverage;
private onConsoleMessage;
private collectMessageType;
}
//# sourceMappingURL=PlaywrightLauncherPage.d.ts.map

@@ -6,16 +6,2 @@ "use strict";

const test_runner_coverage_v8_1 = require("@web/test-runner-coverage-v8");
const browser_logs_1 = require("@web/browser-logs");
// these warnings are generated by mocha
const filteredBrowserWarnings = [
"'window.webkitStorageInfo' is deprecated.",
'onmozfullscreenchange is deprecated.',
'onmozfullscreenerror is deprecated.',
];
function filterBrowserLogs(browserLogs) {
return browserLogs.filter(log => {
return !(log.length === 1 &&
typeof log[0] === 'string' &&
filteredBrowserWarnings.some(warn => log[0].includes(warn)));
});
}
class PlaywrightLauncherPage {

@@ -27,30 +13,3 @@ constructor(config, testFiles, playwrightPage) {

this.nativeInstrumentationEnabledOnPage = false;
this.logs = [];
this.navigations = [];
this.onConsoleMessage = (message) => {
if (!this.collectMessageType(message.type())) {
return;
}
const args = message.args();
if (args.length > 0) {
const logsPromise = message.args().map(arg => arg
// serialize the log message in the browser to a string
// __wtr_browser_logs__ is injected by a script, but in some cases we're setting it isn't available
// for example for browser native warnings
.evaluateHandle(e => window.__wtr_browser_logs__
? window.__wtr_browser_logs__.serialize(e)
: JSON.stringify(e))
// pass along the message from the browser to NodeJS as a string
.then(handle => handle.jsonValue())
// deserialize the string to an array of logs
.then(str => browser_logs_1.deserialize(str))
.catch(err => `Error while collecting browser logs: ${err.message}`));
this.logs.push(Promise.all(logsPromise));
}
else {
this.logs.push(Promise.resolve([message.text()]));
}
};
// inject serialization script
playwrightPage.addInitScript(browser_logs_1.browserScript);
// track browser navigations

@@ -62,5 +21,2 @@ playwrightPage.on('request', e => {

});
if (config.logBrowserLogs !== false) {
playwrightPage.on('console', this.onConsoleMessage);
}
}

@@ -80,3 +36,2 @@ async runSession(url, coverage) {

}
this.logs = [];
await this.playwrightPage.setViewportSize({ height: 600, width: 800 });

@@ -88,3 +43,2 @@ await this.playwrightPage.goto(url);

let testCoverage;
let browserLogs = [];
// check if the page was navigated, resulting in broken tests

@@ -99,7 +53,3 @@ const navigationError = test_runner_core_1.getBrowserPageNavigationError(this.testURL, this.navigations);

: undefined;
[testCoverage, browserLogs] = await Promise.all([
testCoveragePromise,
Promise.all(this.logs),
]);
browserLogs = filterBrowserLogs(browserLogs);
testCoverage = await testCoveragePromise;
}

@@ -109,3 +59,3 @@ // navigate to an empty page to kill any running code on the page, stopping timers and

await this.playwrightPage.goto('data:,');
return { testCoverage, browserLogs, errors };
return { testCoverage, errors };
}

@@ -129,9 +79,4 @@ async collectTestCoverage(config, testFiles) {

}
collectMessageType(type) {
return (this.config.logBrowserLogs === true ||
(Array.isArray(this.config.logBrowserLogs) &&
this.config.logBrowserLogs.includes(type)));
}
}
exports.PlaywrightLauncherPage = PlaywrightLauncherPage;
//# sourceMappingURL=PlaywrightLauncherPage.js.map
{
"name": "@web/test-runner-playwright",
"version": "0.5.6",
"version": "0.5.7",
"publishConfig": {

@@ -42,4 +42,3 @@ "access": "public"

"dependencies": {
"@web/browser-logs": "^0.1.2",
"@web/test-runner-core": "^0.7.10",
"@web/test-runner-core": "^0.7.15",
"@web/test-runner-coverage-v8": "^0.1.2",

@@ -46,0 +45,0 @@ "playwright": "^1.3.0"

@@ -1,2 +0,2 @@

import { Page, ConsoleMessage } from 'playwright';
import { Page } from 'playwright';
import {

@@ -9,25 +9,6 @@ getBrowserPageNavigationError,

import { V8Coverage, v8ToIstanbul } from '@web/test-runner-coverage-v8';
import { browserScript, deserialize } from '@web/browser-logs';
import { SessionResult } from '@web/test-runner-core';
// these warnings are generated by mocha
const filteredBrowserWarnings = [
"'window.webkitStorageInfo' is deprecated.",
'onmozfullscreenchange is deprecated.',
'onmozfullscreenerror is deprecated.',
];
function filterBrowserLogs(browserLogs: any[][]) {
return browserLogs.filter(log => {
return !(
log.length === 1 &&
typeof log[0] === 'string' &&
filteredBrowserWarnings.some(warn => log[0].includes(warn))
);
});
}
export class PlaywrightLauncherPage {
private nativeInstrumentationEnabledOnPage = false;
private logs: Promise<any[]>[] = [];
private testURL?: URL;

@@ -41,5 +22,2 @@ private navigations: URL[] = [];

) {
// inject serialization script
playwrightPage.addInitScript(browserScript);
// track browser navigations

@@ -51,6 +29,2 @@ playwrightPage.on('request', e => {

});
if (config.logBrowserLogs !== false) {
playwrightPage.on('console', this.onConsoleMessage);
}
}

@@ -74,3 +48,2 @@

this.logs = [];
await this.playwrightPage.setViewportSize({ height: 600, width: 800 });

@@ -83,3 +56,2 @@ await this.playwrightPage.goto(url);

let testCoverage: CoverageMapData | undefined;
let browserLogs: any[][] = [];

@@ -95,7 +67,3 @@ // check if the page was navigated, resulting in broken tests

[testCoverage, browserLogs] = await Promise.all([
testCoveragePromise,
Promise.all(this.logs),
]);
browserLogs = filterBrowserLogs(browserLogs);
testCoverage = await testCoveragePromise;
}

@@ -107,3 +75,3 @@

return { testCoverage, browserLogs, errors };
return { testCoverage, errors };
}

@@ -134,40 +102,2 @@

}
private onConsoleMessage = (message: ConsoleMessage) => {
if (!this.collectMessageType(message.type())) {
return;
}
const args = message.args();
if (args.length > 0) {
const logsPromise = message.args().map(arg =>
arg
// serialize the log message in the browser to a string
// __wtr_browser_logs__ is injected by a script, but in some cases we're setting it isn't available
// for example for browser native warnings
.evaluateHandle(e =>
(window as any).__wtr_browser_logs__
? (window as any).__wtr_browser_logs__.serialize(e)
: JSON.stringify(e),
)
// pass along the message from the browser to NodeJS as a string
.then(handle => handle.jsonValue())
// deserialize the string to an array of logs
.then(str => deserialize(str as string))
.catch(err => `Error while collecting browser logs: ${err.message}`),
);
this.logs.push(Promise.all(logsPromise));
} else {
this.logs.push(Promise.resolve([message.text()]));
}
};
private collectMessageType(type: string) {
return (
this.config.logBrowserLogs === true ||
(Array.isArray(this.config.logBrowserLogs) &&
this.config.logBrowserLogs.includes(type as any))
);
}
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc