Skip to content

Commit

Permalink
Normalize newlines in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Ben Zörb committed Jun 21, 2020
1 parent 33338c2 commit a37c2e8
Show file tree
Hide file tree
Showing 2 changed files with 76 additions and 53 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
"grunt-contrib-watch": "^1.1.0",
"grunt-simple-mocha": "^0.4.1",
"load-grunt-tasks": "^5.1.0",
"normalize-newline": "^3.0.0",
"serve-static": "^1.14.1",
"xo": "^0.32.0"
},
Expand Down
128 changes: 75 additions & 53 deletions test/index.js
Original file line number Diff line number Diff line change
@@ -1,122 +1,144 @@
/* eslint-env mocha */

'use strict';
"use strict";

const path = require('path');
const fs = require('fs');
const {expect} = require('chai');
const path = require("path");
const fs = require("fs");
const nn = require("normalize-newline");
const { expect } = require("chai");

function readFile(file) {
let contents = fs.readFileSync(path.join(__dirname, file), 'utf8');
let contents = fs.readFileSync(path.join(__dirname, file), "utf8");

if (process.platform === 'win32') {
contents = contents.replace(/\r\n/g, '\n');
}

return contents;
return nn(contents);
}

function fileExists(file) {
return fs.existsSync(path.join(__dirname, file));
}

describe('critical', () => {
it('generates minified critical-path CSS successfully', () => {
const expected = readFile('expected/critical.css');
const output = readFile('generated/critical.css');
describe("critical", () => {
it("generates minified critical-path CSS successfully", () => {
const expected = readFile("expected/critical.css");
const output = readFile("generated/critical.css");

expect(output).to.equal(expected);
});

it('generates html with minified critical-path CSS successfully', () => {
const expected = readFile('expected/index-minified.html');
const output = readFile('generated/index-critical.html');
it("generates html with minified critical-path CSS successfully", () => {
const expected = readFile("expected/index-minified.html");
const output = readFile("generated/index-critical.html");

expect(output).to.equal(expected);
});

it('generates html with minified critical-path CSS successfully ignoring bootstrap css', () => {
const expected = readFile('expected/index-minified-ignore-bootstrap.html');
const output = readFile('generated/index-critical-ignore-bootstrap.html');
it("generates html with minified critical-path CSS successfully ignoring bootstrap css", () => {
const expected = readFile(
"expected/index-minified-ignore-bootstrap.html"
);
const output = readFile(
"generated/index-critical-ignore-bootstrap.html"
);

expect(output).to.equal(expected);
});

it('generates html with minified critical-path CSS for multiple dimensions successfully', () => {
const expected = readFile('expected/index-dimensions.html');
const output = readFile('generated/index-dimensions.html');
it("generates html with minified critical-path CSS for multiple dimensions successfully", () => {
const expected = readFile("expected/index-dimensions.html");
const output = readFile("generated/index-dimensions.html");

expect(output).to.equal(expected);
});

it('generates html with extracted minified critical-path CSS successfully', () => {
const expected = readFile('expected/index-extract.html');
const output = readFile('generated/index-critical-extract.html');
it("generates html with extracted minified critical-path CSS successfully", () => {
const expected = readFile("expected/index-extract.html");
const output = readFile("generated/index-critical-extract.html");

expect(output).to.equal(expected);
expect(fileExists('fixture/styles/main.d41d8cd9.css')).to.equal(true);
expect(fileExists('fixture/styles/bootstrap.130e6d81.css')).to.equal(true);
expect(fileExists("fixture/styles/main.d41d8cd9.css")).to.equal(true);
expect(fileExists("fixture/styles/bootstrap.130e6d81.css")).to.equal(
true
);
});

it('generates multiple html files without throwing "warning: possible EventEmitter memory leak detected"', () => {
const expected = readFile('expected/index-multiple.html');
const expected = readFile("expected/index-multiple.html");
let output;

for (let i = 1; i <= 5; i++) {
output = readFile(`generated/multiple/index${i}.html`);
expect(output).to.equal(expected.replace('<title>page x</title>', `<title>page ${i}</title>`));
expect(output).to.equal(
expected.replace(
"<title>page x</title>",
`<title>page ${i}</title>`
)
);
}
});

it('generates multiple html files with minified CSS', () => {
const expected = readFile('expected/index-multiple-minified.html');
it("generates multiple html files with minified CSS", () => {
const expected = readFile("expected/index-multiple-minified.html");
let output;

for (let i = 1; i <= 5; i++) {
output = readFile(`generated/multiple-min/index${i}.html`);
expect(output).to.equal(expected.replace('<title>page x</title>', `<title>page ${i}</title>`));
expect(output).to.equal(
expected.replace(
"<title>page x</title>",
`<title>page ${i}</title>`
)
);
}
});

it('should keep external URLs with extract option', () => {
const expected = readFile('expected/index-external.html');
const output = readFile('generated/index-external.html');
it("should keep external URLs with extract option", () => {
const expected = readFile("expected/index-external.html");
const output = readFile("generated/index-external.html");

expect(output).to.equal(expected);
expect(fileExists('fixture/styles/main.d41d8cd9.css')).to.equal(true);
expect(fileExists('fixture/styles/bootstrap.ca3dbc40.css')).to.equal(true);
expect(fileExists("fixture/styles/main.d41d8cd9.css")).to.equal(true);
expect(fileExists("fixture/styles/bootstrap.ca3dbc40.css")).to.equal(
true
);
});

it('should write files to folder when folder is specified as dest', () => {
const expected = readFile('expected/index-multiple.html');
it("should write files to folder when folder is specified as dest", () => {
const expected = readFile("expected/index-multiple.html");
let output;

for (let i = 1; i <= 5; i++) {
expect(fileExists(`generated/multiple-files-folder/index${i}.html`)).to.equal(true);
expect(
fileExists(`generated/multiple-files-folder/index${i}.html`)
).to.equal(true);
output = readFile(`generated/multiple-files-folder/index${i}.html`);
expect(output).to.equal(expected.replace('<title>page x</title>', `<title>page ${i}</title>`));
expect(output).to.equal(
expected.replace(
"<title>page x</title>",
`<title>page ${i}</title>`
)
);
}
});

it('should consider ignore option', () => {
const expected = readFile('expected/critical-ignore.css');
const output = readFile('generated/critical-ignore.css');
it("should consider ignore option", () => {
const expected = readFile("expected/critical-ignore.css");
const output = readFile("generated/critical-ignore.css");

expect(output).to.equal(expected);
});

it('should allow glob pattern for css option', () => {
const expected = readFile('expected/critical.css');
const output = readFile('generated/critical-glob.css');
it("should allow glob pattern for css option", () => {
const expected = readFile("expected/critical.css");
const output = readFile("generated/critical-glob.css");

expect(output).to.equal(expected);
});

it('should allow remote sources', () => {
const expectedCss = readFile('expected/critical.css');
const expectedHtml = readFile('expected/index-minified.html');
const outputCss = readFile('generated/remote.css');
const outputHtml = readFile('generated/remote.html');
it("should allow remote sources", () => {
const expectedCss = readFile("expected/critical.css");
const expectedHtml = readFile("expected/index-minified.html");
const outputCss = readFile("generated/remote.css");
const outputHtml = readFile("generated/remote.html");

expect(outputCss).to.equal(expectedCss);
expect(outputHtml).to.equal(expectedHtml);
Expand Down

0 comments on commit a37c2e8

Please sign in to comment.