Skip to content

Commit

Permalink
test: add e2e tests for compress option (#3790)
Browse files Browse the repository at this point in the history
  • Loading branch information
snitin315 committed Sep 4, 2021
1 parent 3123c6f commit 596c042
Show file tree
Hide file tree
Showing 4 changed files with 230 additions and 94 deletions.
25 changes: 25 additions & 0 deletions test/e2e/__snapshots__/compress.test.js.snap.webpack4
@@ -0,0 +1,25 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`compress option as false should handle GET request to bundle file: console messages 1`] = `Array []`;

exports[`compress option as false should handle GET request to bundle file: page errors 1`] = `Array []`;

exports[`compress option as false should handle GET request to bundle file: response headers content-encoding 1`] = `undefined`;

exports[`compress option as false should handle GET request to bundle file: response status 1`] = `200`;

exports[`compress option as true should handle GET request to bundle file: console messages 1`] = `Array []`;

exports[`compress option as true should handle GET request to bundle file: page errors 1`] = `Array []`;

exports[`compress option as true should handle GET request to bundle file: response headers content-encoding 1`] = `"gzip"`;

exports[`compress option as true should handle GET request to bundle file: response status 1`] = `200`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: console messages 1`] = `Array []`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: page errors 1`] = `Array []`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: response headers content-encoding 1`] = `"gzip"`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: response status 1`] = `200`;
25 changes: 25 additions & 0 deletions test/e2e/__snapshots__/compress.test.js.snap.webpack5
@@ -0,0 +1,25 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`compress option as false should handle GET request to bundle file: console messages 1`] = `Array []`;

exports[`compress option as false should handle GET request to bundle file: page errors 1`] = `Array []`;

exports[`compress option as false should handle GET request to bundle file: response headers content-encoding 1`] = `undefined`;

exports[`compress option as false should handle GET request to bundle file: response status 1`] = `200`;

exports[`compress option as true should handle GET request to bundle file: console messages 1`] = `Array []`;

exports[`compress option as true should handle GET request to bundle file: page errors 1`] = `Array []`;

exports[`compress option as true should handle GET request to bundle file: response headers content-encoding 1`] = `"gzip"`;

exports[`compress option as true should handle GET request to bundle file: response status 1`] = `200`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: console messages 1`] = `Array []`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: page errors 1`] = `Array []`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: response headers content-encoding 1`] = `"gzip"`;

exports[`compress option enabled by default when not specified should handle GET request to bundle file: response status 1`] = `200`;
180 changes: 180 additions & 0 deletions test/e2e/compress.test.js
@@ -0,0 +1,180 @@
"use strict";

const webpack = require("webpack");
const Server = require("../../lib/Server");
const config = require("../fixtures/simple-config-other/webpack.config");
const runBrowser = require("../helpers/run-browser");
const port = require("../ports-map")["compress-option"];

describe("compress option", () => {
describe("enabled by default when not specified", () => {
let compiler;
let server;
let page;
let browser;
let pageErrors;
let consoleMessages;

beforeEach(async () => {
compiler = webpack(config);

server = new Server({ port }, compiler);

await server.start();

({ page, browser } = await runBrowser());

pageErrors = [];
consoleMessages = [];
});

afterEach(async () => {
await browser.close();
await server.stop();
});

it("should handle GET request to bundle file", async () => {
page
.on("console", (message) => {
consoleMessages.push(message);
})
.on("pageerror", (error) => {
pageErrors.push(error);
});

const response = await page.goto(`http://127.0.0.1:${port}/main.js`, {
waitUntil: "networkidle0",
});

expect(response.status()).toMatchSnapshot("response status");

expect(response.headers()["content-encoding"]).toMatchSnapshot(
"response headers content-encoding"
);

expect(consoleMessages.map((message) => message.text())).toMatchSnapshot(
"console messages"
);

expect(pageErrors).toMatchSnapshot("page errors");
});
});

describe("as true", () => {
let compiler;
let server;
let page;
let browser;
let pageErrors;
let consoleMessages;

beforeEach(async () => {
compiler = webpack(config);

server = new Server(
{
compress: true,
port,
},
compiler
);

await server.start();

({ page, browser } = await runBrowser());

pageErrors = [];
consoleMessages = [];
});

afterEach(async () => {
await browser.close();
await server.stop();
});

it("should handle GET request to bundle file", async () => {
page
.on("console", (message) => {
consoleMessages.push(message);
})
.on("pageerror", (error) => {
pageErrors.push(error);
});

const response = await page.goto(`http://127.0.0.1:${port}/main.js`, {
waitUntil: "networkidle0",
});

expect(response.status()).toMatchSnapshot("response status");

expect(response.headers()["content-encoding"]).toMatchSnapshot(
"response headers content-encoding"
);

expect(consoleMessages.map((message) => message.text())).toMatchSnapshot(
"console messages"
);

expect(pageErrors).toMatchSnapshot("page errors");
});
});

describe("as false", () => {
let compiler;
let server;
let page;
let browser;
let pageErrors;
let consoleMessages;

beforeEach(async () => {
compiler = webpack(config);

server = new Server(
{
compress: false,
port,
},
compiler
);

await server.start();

({ page, browser } = await runBrowser());

pageErrors = [];
consoleMessages = [];
});

afterEach(async () => {
await browser.close();
await server.stop();
});

it("should handle GET request to bundle file", async () => {
page
.on("console", (message) => {
consoleMessages.push(message);
})
.on("pageerror", (error) => {
pageErrors.push(error);
});

const response = await page.goto(`http://127.0.0.1:${port}/main.js`, {
waitUntil: "networkidle0",
});

expect(response.status()).toMatchSnapshot("response status");

expect(response.headers()["content-encoding"]).toMatchSnapshot(
"response headers content-encoding"
);

expect(consoleMessages.map((message) => message.text())).toMatchSnapshot(
"console messages"
);

expect(pageErrors).toMatchSnapshot("page errors");
});
});
});
94 changes: 0 additions & 94 deletions test/server/compress-option.test.js

This file was deleted.

0 comments on commit 596c042

Please sign in to comment.