Skip to content

Commit

Permalink
test: move logging.test.js to Playwright
Browse files Browse the repository at this point in the history
  • Loading branch information
mahdikhashan committed Jun 15, 2024
1 parent c5804d1 commit 44730ee
Show file tree
Hide file tree
Showing 29 changed files with 270 additions and 0 deletions.
242 changes: 242 additions & 0 deletions test/e2e-playwright/logging.test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,242 @@
"use strict";

const path = require("path");
const fs = require("graceful-fs");
const webpack = require("webpack");
const { test } = require("@playwright/test");
const { expect } = require("@playwright/test");
const { describe } = require("@playwright/test");
const Server = require("../../lib/Server");
const HTMLGeneratorPlugin = require("../helpers/html-generator-plugin");
const config = require("../fixtures/client-config/webpack.config");
const port = require("../ports-map").logging;

describe("logging", () => {
const webSocketServers = [
{ webSocketServer: "ws" },
{ webSocketServer: "sockjs" },
];

const cases = [
{
title: "should work and log message about live reloading is enabled",
devServerOptions: {
hot: false,
},
},
{
title: "should work and log messages about hot",
devServerOptions: {
hot: true,
},
},
{
title: "should work and log messages about hot is enabled",
devServerOptions: {
liveReload: false,
},
},
{
title:
"should work and do not log messages about hot and live reloading is enabled",
devServerOptions: {
liveReload: false,
hot: false,
},
},
{
title:
"should work and log messages about hot and live reloading is enabled",
devServerOptions: {
liveReload: true,
hot: true,
},
},
{
title: "should work and log warnings by default",
webpackOptions: {
plugins: [
{
apply(compiler) {
compiler.hooks.thisCompilation.tap(
"warnings-webpack-plugin",
(compilation) => {
compilation.warnings.push(
new Error("Warning from compilation"),
);
},
);
},
},
new HTMLGeneratorPlugin(),
],
},
},
{
title: "should work and log errors by default",
webpackOptions: {
plugins: [
{
apply(compiler) {
compiler.hooks.thisCompilation.tap(
"warnings-webpack-plugin",
(compilation) => {
compilation.errors.push(new Error("Error from compilation"));
},
);
},
},
new HTMLGeneratorPlugin(),
],
},
},
{
title: 'should work when the "client.logging" is "info"',
devServerOptions: {
client: {
logging: "info",
},
},
},
{
title: 'should work when the "client.logging" is "log"',
devServerOptions: {
client: {
logging: "log",
},
},
},
{
title: 'should work when the "client.logging" is "verbose"',
devServerOptions: {
client: {
logging: "verbose",
},
},
},
{
title: 'should work when the "client.logging" is "none"',
devServerOptions: {
client: {
logging: "none",
},
},
},
{
title: "should work and log only error",
webpackOptions: {
plugins: [
{
apply(compiler) {
compiler.hooks.thisCompilation.tap(
"warnings-webpack-plugin",
(compilation) => {
compilation.warnings.push(
new Error("Warning from compilation"),
);
compilation.errors.push(new Error("Error from compilation"));
},
);
},
},
new HTMLGeneratorPlugin(),
],
},
devServerOptions: {
client: {
logging: "error",
},
},
},
{
title: "should work and log warning and errors",
webpackOptions: {
plugins: [
{
apply(compiler) {
compiler.hooks.thisCompilation.tap(
"warnings-webpack-plugin",
(compilation) => {
compilation.warnings.push(
new Error("Warning from compilation"),
);
compilation.errors.push(new Error("Error from compilation"));
},
);
},
},
new HTMLGeneratorPlugin(),
],
},
devServerOptions: {
client: {
logging: "warn",
},
},
},
{
title: "should work and log static changes",
devServerOptions: {
static: path.resolve(__dirname, "../fixtures/client-config/static"),
},
},
];

webSocketServers.forEach((webSocketServer) => {
cases.forEach((testCase) => {
test(`${testCase.title} (${
webSocketServer.webSocketServer || "default"
})`, async ({ page }) => {
const compiler = webpack({ ...config, ...testCase.webpackOptions });
const devServerOptions = {
port,
...testCase.devServerOptions,
};
const server = new Server(devServerOptions, compiler);

await server.start();

try {
const consoleMessages = [];

page.on("console", (message) => {
consoleMessages.push(message);
});

await page.goto(`http://localhost:${port}/`, {
waitUntil: "networkidle0",
});

if (testCase.devServerOptions && testCase.devServerOptions.static) {
fs.writeFileSync(
path.join(testCase.devServerOptions.static, "./foo.txt"),
"Text",
);

await page.waitForNavigation({
waitUntil: "networkidle0",
});
}

expect(
JSON.stringify(
consoleMessages.map((message) =>
message
.text()
.replace(/\\/g, "/")
.replace(
new RegExp(process.cwd().replace(/\\/g, "/"), "g"),
"<cwd>",
),
),
),
).toMatchSnapshot();
} catch (error) {
throw error;
} finally {
await server.stop();
}
});
});
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement disabled, Live Reloading disabled, Progress disabled, Overlay enabled.","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement disabled, Live Reloading disabled, Progress disabled, Overlay enabled.","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey.","[webpack-dev-server] Errors while compiling. Reload prevented.","[webpack-dev-server] ERROR\nError from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey.","[webpack-dev-server] Errors while compiling. Reload prevented.","[webpack-dev-server] ERROR\nError from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement disabled, Live Reloading enabled, Progress disabled, Overlay enabled.","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement disabled, Live Reloading enabled, Progress disabled, Overlay enabled.","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading disabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading disabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["Hey.","[webpack-dev-server] Errors while compiling. Reload prevented.","[webpack-dev-server] ERROR\nError from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["Hey.","[webpack-dev-server] Errors while compiling. Reload prevented.","[webpack-dev-server] ERROR\nError from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey.","[webpack-dev-server] \"<cwd>/test/fixtures/client-config/static/foo.txt\" from static directory was changed. Reloading...","[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey.","[webpack-dev-server] \"<cwd>/test/fixtures/client-config/static/foo.txt\" from static directory was changed. Reloading...","[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["Hey.","[webpack-dev-server] Warnings while compiling.","[webpack-dev-server] WARNING\nWarning from compilation","[webpack-dev-server] Errors while compiling. Reload prevented.","[webpack-dev-server] ERROR\nError from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["Hey.","[webpack-dev-server] Warnings while compiling.","[webpack-dev-server] WARNING\nWarning from compilation","[webpack-dev-server] Errors while compiling. Reload prevented.","[webpack-dev-server] ERROR\nError from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey.","[webpack-dev-server] Warnings while compiling.","[webpack-dev-server] WARNING\nWarning from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey.","[webpack-dev-server] Warnings while compiling.","[webpack-dev-server] WARNING\nWarning from compilation"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
["[webpack-dev-server] Server started: Hot Module Replacement enabled, Live Reloading enabled, Progress disabled, Overlay enabled.","[HMR] Waiting for update signal from WDS...","Hey."]

0 comments on commit 44730ee

Please sign in to comment.