Skip to content

Commit 9edd14d

Browse files
committed
refactor: Organized tests + added ability to test src or dist
1 parent 834ffad commit 9edd14d

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+1855
-1820
lines changed

.mocharc.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
require: blanket,should,spec
1+
require: blanket,should,spec,"ts-node/register"

package.json

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,21 @@
55
"main": "dist/index.js",
66
"types": "dist/index.d.ts",
77
"scripts": {
8-
"test": "mocha",
8+
"compile": "tsc",
9+
"build": "npm run lint && npm run clean && npm run compile:cjs && npm run compile:amd",
10+
"compile:cjs": "tsc -m commonjs",
11+
"compile:amd": "tsc -t es5 -m amd -d false --outFile ./dist/main.js",
12+
"---------------": "",
13+
"test": "mocha ./test/tests/**/*.js",
14+
"test:src": "cross-env TEST_TARGET=src mocha ./test/tests",
15+
"test:dist": "cross-env TEST_TARGET=dist mocha ./test/tests",
16+
"benchmark": "node ./test/benchmark/compare.mjs",
17+
"--------------- ": "",
918
"lint": "eslint ./src/*.ts ./src/**/*.ts",
1019
"clean": "del-cli ./dist/",
11-
"ts:cjs": "tsc -m commonjs",
12-
"ts:amd": "tsc -t es5 -m amd -d false --outFile ./dist/main.js",
13-
"build": "npm run lint && npm run clean && npm run ts:cjs && npm run ts:amd",
14-
"dev": "tsc -w & mocha -w ./test/*.js",
15-
"pretest": "tsc -m commonjs && cd test/assets && yarn install",
16-
"release": "yarn build && np",
17-
"prepare": "npm run build"
20+
"--------------- ": "",
21+
"posttest": "yarn run benchmark",
22+
"prepare": "cd test && yarn install"
1823
},
1924
"keywords": [
2025
"parser",
@@ -60,7 +65,8 @@
6065
"standard-version": "^9.3.1",
6166
"travis-cov": "latest",
6267
"ts-node": "^10.2.1",
63-
"typescript": "next"
68+
"typescript": "latest",
69+
"cross-env": "^7.0.3"
6470
},
6571
"config": {
6672
"blanket": {

test/html/ffmpeg.html renamed to test/assets/html/ffmpeg.html

Lines changed: 718 additions & 718 deletions
Large diffs are not rendered by default.

test/html/gmail.html renamed to test/assets/html/gmail.html

Lines changed: 394 additions & 394 deletions
Large diffs are not rendered by default.

test/html/google.html renamed to test/assets/html/google.html

Lines changed: 8 additions & 8 deletions
Large diffs are not rendered by default.

test/html/hillcrestpartyrentals.html renamed to test/assets/html/hillcrestpartyrentals.html

Lines changed: 587 additions & 587 deletions
Large diffs are not rendered by default.
File renamed without changes.
File renamed without changes.
File renamed without changes.

test/html/view-source_https___epicentrk.ua_shop_kirpich-ogneupornyy_.html renamed to test/assets/html/view-source_https___epicentrk.ua_shop_kirpich-ogneupornyy_.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4875,10 +4875,10 @@ <h2>
48754875

48764876
</main>
48774877
<footer class="footer" id="footer-block">
4878-
<div><style>
4879-
.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] {
4880-
fill: #bbbbbb;
4881-
}
4878+
<div><style>
4879+
.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] {
4880+
fill: #bbbbbb;
4881+
}
48824882
</style></div>
48834883
<div class="footer__blue container">
48844884
<div class="footer__container">

test/assets/package.json

Lines changed: 0 additions & 9 deletions
This file was deleted.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { parse } from 'node-html-parser'
1+
import { parse } from '@test/root'
22

33
const res = parse('<a href="#">parse succeeded</a>');
44
console.log(res.firstChild.text);

test/assets/cjs/package.json renamed to test/assets/packages/cjs/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"name": "cjs-test",
3+
"version": "0.0.0",
34
"private": true,
45
"type": "commonjs",
56
"peerDependencies": {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { parse } from 'node-html-parser'
1+
import { parse } from '@test/root'
22

33
const res = parse('<a href="#">parse succeeded</a>');
44
console.log(res.firstChild.text);

test/assets/esm/package.json renamed to test/assets/packages/esm/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"name": "esm-test",
33
"private": true,
4+
"version": "0.0.0",
45
"type": "module",
56
"peerDependencies": {
67
"node-html-parser": "*"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export * from 'nhp/src'

test/assets/packages/wrapper/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
/**
2+
* The following dynamically loads either the built or uncompiled source code (based on TEST_TARGET env var) when require'd
3+
*/
4+
const path = require('path');
5+
6+
const target = process.env.TEST_TARGET === 'dist' || process.env.CI ? 'dist' : 'src';
7+
8+
module.exports = require(`../../../../${target}`);
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"name": "node-html-parser",
3+
"description": "wrapper",
4+
"version": "0.0.0",
5+
"private": true,
6+
"main": "index.js",
7+
"types": "index.d.ts"
8+
}
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

test/benchmark/compare-nhp-last.mjs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import benchmark from 'htmlparser-benchmark';
2+
import node_html_parser from '@test/last-release';
3+
4+
var bench = benchmark(function (html, callback) {
5+
node_html_parser.parse(html);
6+
callback();
7+
});
8+
9+
bench.on('result', function (stat) {
10+
console.log('node-html-parser (last release):' + stat.mean().toPrecision(6) + ' ms/file ± ' + stat.sd().toPrecision(6));
11+
});

test/compare-node-html-parser.mjs renamed to test/benchmark/compare-node-html-parser.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import benchmark from 'htmlparser-benchmark';
2-
import node_html_parser from '../dist/index.js';
2+
import node_html_parser from '@test/root';
33

44
// const { parse } = node_html_parser;
55

File renamed without changes.
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import './compare-node-html-parser.mjs'
2+
import './compare-nhp-last.mjs'
23
import './compare-high5.mjs'
34
import './compare-htmlparser.mjs'
45
import './compare-htmlparser2.mjs'
56
import './compare-parse5.mjs'
7+
import './compare-cheerio.mjs'

test/package.json

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"private": true,
3+
"workspaces": [
4+
"packages/*"
5+
],
6+
"dependencies": {
7+
"@test/test-target": "link:assets/packages/wrapper",
8+
"@test/root": "link:../",
9+
"@test/last-release": "npm:node-html-parser@latest"
10+
}
11+
}

test/caseinsensitive.js renamed to test/tests/caseinsensitive.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
// https://github.com/taoqf/node-html-parser/issues/75
44
describe('query should be case insensitive', function () {

test/emptyattribute.js renamed to test/tests/emptyattribute.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
// https://github.com/taoqf/node-html-parser/issues/95
44
describe('empty attribute', function () {

test/html.js renamed to test/tests/html.js

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
const should = require('should');
22
const fs = require('fs');
33

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

96
describe('HTML Parser', function () {
10-
const parseHTML = HTMLParser.parse;
11-
127
describe('parse()', function () {
138
it('should parse "<p id=\\"id\\"><a class=\'cls\'>Hello</a><ul><li><li></ul><span></span></p>" and return root element', function () {
149

@@ -135,7 +130,7 @@ describe('HTML Parser', function () {
135130

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

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

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

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

171166
it('should parse table currect', function () {
172-
const root = parseHTML(fs.readFileSync(__dirname + '/html/tables.html').toString(), {
167+
const root = parseHTML(fs.readFileSync(__dirname + '/../assets/html/tables.html').toString(), {
173168
script: true
174169
});
175170
const tables = root.querySelectorAll('table');

test/import.js renamed to test/tests/import.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,14 @@ describe(`Module Import`, function () {
66

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

1414
it(`CommonJS project can import and use named exports`, () => {
1515
execSync('node -r ts-node/register index.ts', {
16-
cwd: path.resolve(__dirname, 'assets/cjs'),
16+
cwd: path.resolve(__dirname, '../assets/packages/cjs'),
1717
stdio: "pipe"
1818
}).toString().should.eql('parse succeeded\n')
1919
});

test/100.js renamed to test/tests/issues/100.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('#querySelectorAll', function () {
44
it('nothing mached', function () {

test/106.js renamed to test/tests/issues/106.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22
const fs = require('fs');
33

44
describe.skip('Memory leak', function () {
@@ -8,7 +8,7 @@ describe.skip('Memory leak', function () {
88
let i = 0;
99
const cat = {};
1010
// const cat = {};
11-
const content = fs.readFileSync(__dirname + '/html/view-source_https___epicentrk.ua_shop_kirpich-ogneupornyy_.html', 'utf-8');
11+
const content = fs.readFileSync(__dirname + '/../assets/html/view-source_https___epicentrk.ua_shop_kirpich-ogneupornyy_.html', 'utf-8');
1212
while (++i < 10000) {
1313
let root = parse(content);
1414
const parent = Math.random().toString();

test/109.js renamed to test/tests/issues/109.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('self-close tag', function () {
44
it('should not teat textarea as self-colse tag', async function () {

test/112.js renamed to test/tests/issues/112.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse, HTMLElement } = require('../dist');
1+
const { parse, HTMLElement } = require('@test/test-target');
22

33
// https://github.com/taoqf/node-html-parser/pull/112
44
describe('pull/112', function () {

test/115.js renamed to test/tests/issues/115.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('issue 115', function () {
44
it('parse html', async function () {

test/119.js renamed to test/tests/issues/119.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
// https://github.com/taoqf/node-html-parser/pull/112
44
describe('issue 119 closest', function () {

test/129.js renamed to test/tests/issues/129.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
// see: https://github.com/taoqf/node-html-parser/issues/129
44
describe('Prototype pollution', () => {

test/135.js renamed to test/tests/issues/135.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('pr 135', function () {
44
it('shoud not decode text', function () {

test/136.js renamed to test/tests/issues/136.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('issue 136', function () {
44
it('parse the parent html tag when its attributes has an html tag on it', function () {

test/144.js renamed to test/tests/issues/144.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse, NodeType } = require('../dist');
1+
const { parse, NodeType } = require('@test/test-target');
22

33
// Also see comments on https://github.com/taoqf/node-html-parser/pull/148 for additional issues corrected
44
describe('issue 144', function () {

test/145.js renamed to test/tests/issues/145.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('issue 145', function () {
44
it('shoud parse attributes right', function () {

test/152.js renamed to test/tests/issues/152.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe.skip('issue 152', function () {
44
it('shoud parse attributes right', function () {

test/28,59,74.js renamed to test/tests/issues/28,59,74.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('issues/28', function () {
44
it('query with dl > dt', function () {

test/41.js renamed to test/tests/issues/41.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
// https://github.com/taoqf/node-html-parser/issues/41
44
describe('#exchangeChild()', function () {

test/42.js renamed to test/tests/issues/42.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('issue 42', function () {
44
it('svg attribute', function () {

test/48.js renamed to test/tests/issues/48.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

33
describe('issue 48', function () {
44
it('get decoded text', function () {

test/51.js renamed to test/tests/issues/51.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const { parse } = require('../dist');
1+
const { parse } = require('@test/test-target');
22

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

0 commit comments

Comments
 (0)