Skip to content

Commit

Permalink
refactor: Organized tests + added ability to test src or dist
Browse files Browse the repository at this point in the history
  • Loading branch information
nonara committed Oct 10, 2021
1 parent 834ffad commit 9edd14d
Show file tree
Hide file tree
Showing 65 changed files with 1,861 additions and 1,826 deletions.
2 changes: 1 addition & 1 deletion .mocharc.yaml
Original file line number Diff line number Diff line change
@@ -1 +1 @@
require: blanket,should,spec
require: blanket,should,spec,"ts-node/register"
24 changes: 15 additions & 9 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,21 @@
"main": "dist/index.js",
"types": "dist/index.d.ts",
"scripts": {
"test": "mocha",
"compile": "tsc",
"build": "npm run lint && npm run clean && npm run compile:cjs && npm run compile:amd",
"compile:cjs": "tsc -m commonjs",
"compile:amd": "tsc -t es5 -m amd -d false --outFile ./dist/main.js",
"---------------": "",
"test": "mocha ./test/tests/**/*.js",
"test:src": "cross-env TEST_TARGET=src mocha ./test/tests",
"test:dist": "cross-env TEST_TARGET=dist mocha ./test/tests",
"benchmark": "node ./test/benchmark/compare.mjs",
"--------------- ": "",
"lint": "eslint ./src/*.ts ./src/**/*.ts",
"clean": "del-cli ./dist/",
"ts:cjs": "tsc -m commonjs",
"ts:amd": "tsc -t es5 -m amd -d false --outFile ./dist/main.js",
"build": "npm run lint && npm run clean && npm run ts:cjs && npm run ts:amd",
"dev": "tsc -w & mocha -w ./test/*.js",
"pretest": "tsc -m commonjs && cd test/assets && yarn install",
"release": "yarn build && np",
"prepare": "npm run build"
"--------------- ": "",
"posttest": "yarn run benchmark",
"prepare": "cd test && yarn install"
},
"keywords": [
"parser",
Expand Down Expand Up @@ -60,7 +65,8 @@
"standard-version": "^9.3.1",
"travis-cov": "latest",
"ts-node": "^10.2.1",
"typescript": "next"
"typescript": "latest",
"cross-env": "^7.0.3"
},
"config": {
"blanket": {
Expand Down
4 changes: 0 additions & 4 deletions test/assets/cjs/index.ts

This file was deleted.

4 changes: 0 additions & 4 deletions test/assets/esm/index.ts

This file was deleted.

1,436 changes: 718 additions & 718 deletions test/html/ffmpeg.html → test/assets/html/ffmpeg.html

Large diffs are not rendered by default.

788 changes: 394 additions & 394 deletions test/html/gmail.html → test/assets/html/gmail.html

Large diffs are not rendered by default.

16 changes: 8 additions & 8 deletions test/html/google.html → test/assets/html/google.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

File renamed without changes.
File renamed without changes.
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -4875,10 +4875,10 @@ <h2>

</main>
<footer class="footer" id="footer-block">
<div><style>
.card[_ngcontent-serverApp-c65] .card__info[_ngcontent-serverApp-c65] .card__superstars[_ngcontent-serverApp-c65] .card__superstars-comment[_ngcontent-serverApp-c65] .custom-icon[_ngcontent-serverApp-c65] {
fill: #bbbbbb;
}
<div><style>
.card[_ngcontent-serverApp-c65] .card__info[_ngcontent-serverApp-c65] .card__superstars[_ngcontent-serverApp-c65] .card__superstars-comment[_ngcontent-serverApp-c65] .custom-icon[_ngcontent-serverApp-c65] {
fill: #bbbbbb;
}
</style></div>
<div class="footer__blue container">
<div class="footer__container">
Expand Down
9 changes: 0 additions & 9 deletions test/assets/package.json

This file was deleted.

4 changes: 4 additions & 0 deletions test/assets/packages/cjs/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { parse } from '@test/root'

const res = parse('<a href="#">parse succeeded</a>');
console.log(res.firstChild.text);
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
{
"name": "cjs-test",
"version": "0.0.0",
"private": true,
"type": "commonjs",
"peerDependencies": {
Expand Down
File renamed without changes.
4 changes: 4 additions & 0 deletions test/assets/packages/esm/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
import { parse } from '@test/root'

const res = parse('<a href="#">parse succeeded</a>');
console.log(res.firstChild.text);
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
{
"name": "esm-test",
"private": true,
"version": "0.0.0",
"type": "module",
"peerDependencies": {
"node-html-parser": "*"
Expand Down
File renamed without changes.
File renamed without changes.
1 change: 1 addition & 0 deletions test/assets/packages/wrapper/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export * from 'nhp/src'
8 changes: 8 additions & 0 deletions test/assets/packages/wrapper/index.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* The following dynamically loads either the built or uncompiled source code (based on TEST_TARGET env var) when require'd
*/
const path = require('path');

const target = process.env.TEST_TARGET === 'dist' || process.env.CI ? 'dist' : 'src';

module.exports = require(`../../../../${target}`);
8 changes: 8 additions & 0 deletions test/assets/packages/wrapper/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "node-html-parser",
"description": "wrapper",
"version": "0.0.0",
"private": true,
"main": "index.js",
"types": "index.d.ts"
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
11 changes: 11 additions & 0 deletions test/benchmark/compare-nhp-last.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
import benchmark from 'htmlparser-benchmark';
import node_html_parser from '@test/last-release';

var bench = benchmark(function (html, callback) {
node_html_parser.parse(html);
callback();
});

bench.on('result', function (stat) {
console.log('node-html-parser (last release):' + stat.mean().toPrecision(6) + ' ms/file ± ' + stat.sd().toPrecision(6));
});
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import benchmark from 'htmlparser-benchmark';
import node_html_parser from '../dist/index.js';
import node_html_parser from '@test/root';

// const { parse } = node_html_parser;

Expand Down
File renamed without changes.
2 changes: 2 additions & 0 deletions test/compare.mjs → test/benchmark/compare.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import './compare-node-html-parser.mjs'
import './compare-nhp-last.mjs'
import './compare-high5.mjs'
import './compare-htmlparser.mjs'
import './compare-htmlparser2.mjs'
import './compare-parse5.mjs'
import './compare-cheerio.mjs'
11 changes: 11 additions & 0 deletions test/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"private": true,
"workspaces": [
"packages/*"
],
"dependencies": {
"@test/test-target": "link:assets/packages/wrapper",
"@test/root": "link:../",
"@test/last-release": "npm:node-html-parser@latest"
}
}
2 changes: 1 addition & 1 deletion test/caseinsensitive.js → test/tests/caseinsensitive.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

// https://github.com/taoqf/node-html-parser/issues/75
describe('query should be case insensitive', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/emptyattribute.js → test/tests/emptyattribute.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

// https://github.com/taoqf/node-html-parser/issues/95
describe('empty attribute', function () {
Expand Down
13 changes: 4 additions & 9 deletions test/html.js → test/tests/html.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,9 @@
const should = require('should');
const fs = require('fs');

const HTMLParser = require('../dist');
const HTMLElement = require('../dist/nodes/html').default;
const TextNode = require('../dist/nodes/text').default;
const CommentNode = require('../dist/nodes/comment').default;
const { parse: parseHTML, HTMLElement, TextNode, CommentNode } = require('@test/test-target');

describe('HTML Parser', function () {
const parseHTML = HTMLParser.parse;

describe('parse()', function () {
it('should parse "<p id=\\"id\\"><a class=\'cls\'>Hello</a><ul><li><li></ul><span></span></p>" and return root element', function () {

Expand Down Expand Up @@ -135,7 +130,7 @@ describe('HTML Parser', function () {

it('should be able to parse "html/incomplete-script" file', function () {

const root = parseHTML(fs.readFileSync(__dirname + '/html/incomplete-script').toString(), {
const root = parseHTML(fs.readFileSync(__dirname + '/../assets/html/incomplete-script').toString(), {
script: true
});

Expand Down Expand Up @@ -165,11 +160,11 @@ describe('HTML Parser', function () {
// Test for broken tags. <h3>something<h3>

it('should parse "<div><h3>content<h3> <span> other <span></div>" (fix h3, span closing tag) very fast', function () {
const root = parseHTML(fs.readFileSync(__dirname + '/html/incomplete-script').toString());
const root = parseHTML(fs.readFileSync(__dirname + '/../assets/html/incomplete-script').toString());
});

it('should parse table currect', function () {
const root = parseHTML(fs.readFileSync(__dirname + '/html/tables.html').toString(), {
const root = parseHTML(fs.readFileSync(__dirname + '/../assets/html/tables.html').toString(), {
script: true
});
const tables = root.querySelectorAll('table');
Expand Down
4 changes: 2 additions & 2 deletions test/import.js → test/tests/import.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,14 @@ describe(`Module Import`, function () {

it(`ESM project can import and use named exports`, () => {
execSync('node --loader ts-node/esm index.ts', {
cwd: path.resolve(__dirname, 'assets/esm'),
cwd: path.resolve(__dirname, '../assets/packages/esm'),
stdio: "pipe"
}).toString().should.eql('parse succeeded\n')
});

it(`CommonJS project can import and use named exports`, () => {
execSync('node -r ts-node/register index.ts', {
cwd: path.resolve(__dirname, 'assets/cjs'),
cwd: path.resolve(__dirname, '../assets/packages/cjs'),
stdio: "pipe"
}).toString().should.eql('parse succeeded\n')
});
Expand Down
2 changes: 1 addition & 1 deletion test/100.js → test/tests/issues/100.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('#querySelectorAll', function () {
it('nothing mached', function () {
Expand Down
4 changes: 2 additions & 2 deletions test/106.js → test/tests/issues/106.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');
const fs = require('fs');

describe.skip('Memory leak', function () {
Expand All @@ -8,7 +8,7 @@ describe.skip('Memory leak', function () {
let i = 0;
const cat = {};
// const cat = {};
const content = fs.readFileSync(__dirname + '/html/view-source_https___epicentrk.ua_shop_kirpich-ogneupornyy_.html', 'utf-8');
const content = fs.readFileSync(__dirname + '/../assets/html/view-source_https___epicentrk.ua_shop_kirpich-ogneupornyy_.html', 'utf-8');
while (++i < 10000) {
let root = parse(content);
const parent = Math.random().toString();
Expand Down
2 changes: 1 addition & 1 deletion test/109.js → test/tests/issues/109.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('self-close tag', function () {
it('should not teat textarea as self-colse tag', async function () {
Expand Down
2 changes: 1 addition & 1 deletion test/112.js → test/tests/issues/112.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse, HTMLElement } = require('../dist');
const { parse, HTMLElement } = require('@test/test-target');

// https://github.com/taoqf/node-html-parser/pull/112
describe('pull/112', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/115.js → test/tests/issues/115.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('issue 115', function () {
it('parse html', async function () {
Expand Down
2 changes: 1 addition & 1 deletion test/119.js → test/tests/issues/119.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

// https://github.com/taoqf/node-html-parser/pull/112
describe('issue 119 closest', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/129.js → test/tests/issues/129.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

// see: https://github.com/taoqf/node-html-parser/issues/129
describe('Prototype pollution', () => {
Expand Down
2 changes: 1 addition & 1 deletion test/135.js → test/tests/issues/135.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('pr 135', function () {
it('shoud not decode text', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/136.js → test/tests/issues/136.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('issue 136', function () {
it('parse the parent html tag when its attributes has an html tag on it', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/144.js → test/tests/issues/144.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse, NodeType } = require('../dist');
const { parse, NodeType } = require('@test/test-target');

// Also see comments on https://github.com/taoqf/node-html-parser/pull/148 for additional issues corrected
describe('issue 144', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/145.js → test/tests/issues/145.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('issue 145', function () {
it('shoud parse attributes right', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/152.js → test/tests/issues/152.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe.skip('issue 152', function () {
it('shoud parse attributes right', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/28,59,74.js → test/tests/issues/28,59,74.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('issues/28', function () {
it('query with dl > dt', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/41.js → test/tests/issues/41.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

// https://github.com/taoqf/node-html-parser/issues/41
describe('#exchangeChild()', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/42.js → test/tests/issues/42.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('issue 42', function () {
it('svg attribute', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/48.js → test/tests/issues/48.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('issue 48', function () {
it('get decoded text', function () {
Expand Down
2 changes: 1 addition & 1 deletion test/51.js → test/tests/issues/51.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { parse } = require('../dist');
const { parse } = require('@test/test-target');

describe('issue 51', function () {
it('vue: > in attibute value', function () {
Expand Down

0 comments on commit 9edd14d

Please sign in to comment.