mirror of
https://github.com/bobwen-dev/react-templates
synced 2025-04-12 00:56:39 +02:00
add coverage and update dependencies
This commit is contained in:
parent
3b9d8579fa
commit
f63fa8e366
1
.gitignore
vendored
1
.gitignore
vendored
@ -18,4 +18,5 @@ npm-debug.log
|
|||||||
|
|
||||||
/web
|
/web
|
||||||
/target
|
/target
|
||||||
|
/coverage
|
||||||
|
|
||||||
|
14
package.json
14
package.json
@ -7,7 +7,8 @@
|
|||||||
"rt": "./bin/rt.js"
|
"rt": "./bin/rt.js"
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "node test/src/test.js"
|
"test": "node test/src/test.js",
|
||||||
|
"test-cov": "istanbul cover test/src/test.js -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/"
|
||||||
},
|
},
|
||||||
"repository": {
|
"repository": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
@ -22,8 +23,8 @@
|
|||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chalk": "^0.5.1",
|
"chalk": "^0.5.1",
|
||||||
"cheerio": "^0.18.0",
|
"cheerio": "^0.18.0",
|
||||||
"escodegen": "^1.5.0",
|
"escodegen": "^1.6.0",
|
||||||
"esprima": "^1.2.2",
|
"esprima": "^1.2.3",
|
||||||
"lodash": "^2.4.1",
|
"lodash": "^2.4.1",
|
||||||
"optionator": "^0.5.0",
|
"optionator": "^0.5.0",
|
||||||
"text-table": "^0.2.0"
|
"text-table": "^0.2.0"
|
||||||
@ -32,14 +33,15 @@
|
|||||||
"brace": "^0.4.0",
|
"brace": "^0.4.0",
|
||||||
"brfs": "^1.2.0",
|
"brfs": "^1.2.0",
|
||||||
"grunt": "^0.4.5",
|
"grunt": "^0.4.5",
|
||||||
"grunt-browserify": "^3.2.0",
|
"grunt-browserify": "^3.3.0",
|
||||||
"grunt-contrib-requirejs": "^0.4.4",
|
"grunt-contrib-requirejs": "^0.4.4",
|
||||||
"grunt-contrib-uglify": "^0.7.0",
|
"grunt-contrib-uglify": "^0.7.0",
|
||||||
"grunt-contrib-watch": "^0.6.1",
|
"grunt-contrib-watch": "^0.6.1",
|
||||||
"grunt-eslint": "^3.0.0",
|
"grunt-eslint": "^5.0.0",
|
||||||
"grunt-node-tap": "^0.1.61",
|
"grunt-node-tap": "^0.1.61",
|
||||||
|
"istanbul": "^0.3.5",
|
||||||
"react": "^0.12.2",
|
"react": "^0.12.2",
|
||||||
"tape": "^3.0.2"
|
"tape": "^3.4.0"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"templates",
|
"templates",
|
||||||
|
103
test/src/test.js
103
test/src/test.js
@ -9,6 +9,10 @@ var cheerio = require('cheerio');
|
|||||||
|
|
||||||
var dataPath = path.resolve(__dirname, '..', 'data');
|
var dataPath = path.resolve(__dirname, '..', 'data');
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} filename
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
function readFileNormalized(filename) {
|
function readFileNormalized(filename) {
|
||||||
return fs.readFileSync(filename).toString().replace(/\r/g, '').trim();
|
return fs.readFileSync(filename).toString().replace(/\r/g, '').trim();
|
||||||
}
|
}
|
||||||
@ -41,6 +45,10 @@ test('invalid tests', function (t) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {ERR} err
|
||||||
|
* @return {ERR}
|
||||||
|
*/
|
||||||
function normalizeError(err) {
|
function normalizeError(err) {
|
||||||
err.msg = err.msg.replace(/\r/g, '');
|
err.msg = err.msg.replace(/\r/g, '');
|
||||||
return err;
|
return err;
|
||||||
@ -69,6 +77,15 @@ test('invalid tests json', function (t) {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @typedef {{index: number, line: number, column: number, msg: string, level: string, file: string}} ERR
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {RTCodeError} err
|
||||||
|
* @param {string} file
|
||||||
|
* @return {ERR}
|
||||||
|
*/
|
||||||
function errorEqualMessage(err, file) {
|
function errorEqualMessage(err, file) {
|
||||||
return {
|
return {
|
||||||
index: err.index,
|
index: err.index,
|
||||||
@ -80,6 +97,10 @@ function errorEqualMessage(err, file) {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {RTCodeError} err
|
||||||
|
* @return {{index: number, line: number, message: string, name: string}}
|
||||||
|
*/
|
||||||
function errorEqual(err) {
|
function errorEqual(err) {
|
||||||
return {
|
return {
|
||||||
index: err.index,
|
index: err.index,
|
||||||
@ -92,7 +113,6 @@ function errorEqual(err) {
|
|||||||
test('conversion test', function (t) {
|
test('conversion test', function (t) {
|
||||||
var files = ['div.rt', 'test.rt', 'repeat.rt', 'inputs.rt', 'require.rt'];
|
var files = ['div.rt', 'test.rt', 'repeat.rt', 'inputs.rt', 'require.rt'];
|
||||||
t.plan(files.length);
|
t.plan(files.length);
|
||||||
|
|
||||||
files.forEach(check);
|
files.forEach(check);
|
||||||
|
|
||||||
function check(testFile) {
|
function check(testFile) {
|
||||||
@ -101,70 +121,46 @@ test('conversion test', function (t) {
|
|||||||
var expected = readFileNormalized(filename + '.js');
|
var expected = readFileNormalized(filename + '.js');
|
||||||
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
||||||
var actual = reactTemplates.convertTemplateToReact(html).replace(/\r/g, '').trim();
|
var actual = reactTemplates.convertTemplateToReact(html).replace(/\r/g, '').trim();
|
||||||
t.equal(actual, expected);
|
compareAndWrite(t, actual, expected, filename);
|
||||||
if (actual !== expected) {
|
|
||||||
fs.writeFileSync(filename + '.actual.js', actual);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
test('conversion test globals', function (t) {
|
/**
|
||||||
var files = ['div.rt'];
|
* @param {*} t
|
||||||
t.plan(files.length);
|
* @param {string} actual
|
||||||
|
* @param {string} expected
|
||||||
files.forEach(check);
|
* @param {string} filename
|
||||||
|
*/
|
||||||
function check(testFile) {
|
function compareAndWrite(t, actual, expected, filename) {
|
||||||
var filename = path.join(dataPath, testFile);
|
t.equal(actual, expected);
|
||||||
var html = readFileNormalized(filename);
|
if (actual !== expected) {
|
||||||
var expected = readFileNormalized(filename + '.globals.js');
|
fs.writeFileSync(filename + '.actual.js', actual);
|
||||||
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
|
||||||
var actual = reactTemplates.convertTemplateToReact(html, {modules: 'none', name: 'div'}).replace(/\r/g, '').trim();
|
|
||||||
t.equal(actual, expected);
|
|
||||||
if (actual !== expected) {
|
|
||||||
fs.writeFileSync(filename + '.actual.js', actual);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
|
|
||||||
test('conversion test amd with name', function (t) {
|
|
||||||
var files = ['div.rt'];
|
|
||||||
t.plan(files.length);
|
|
||||||
|
|
||||||
files.forEach(check);
|
|
||||||
|
|
||||||
function check(testFile) {
|
|
||||||
var filename = path.join(dataPath, testFile);
|
|
||||||
var html = readFileNormalized(filename);
|
|
||||||
var expected = readFileNormalized(filename + '.amd.js');
|
|
||||||
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
|
||||||
var actual = reactTemplates.convertTemplateToReact(html, {modules: 'amd', name: 'div'}).replace(/\r/g, '').trim();
|
|
||||||
t.equal(actual, expected);
|
|
||||||
if (actual !== expected) {
|
|
||||||
fs.writeFileSync(filename + '.actual.js', actual);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
test('conversion test commonjs', function (t) {
|
test('conversion test commonjs', function (t) {
|
||||||
var files = ['div.rt'];
|
var files = [
|
||||||
|
{source: 'div.rt', expected: 'div.rt.commonjs.js', options: {modules: 'commonjs'}},
|
||||||
|
{source: 'div.rt', expected: 'div.rt.amd.js', options: {modules: 'amd', name: 'div'}},
|
||||||
|
{source: 'div.rt', expected: 'div.rt.globals.js', options: {modules: 'none', name: 'div'}}
|
||||||
|
];
|
||||||
t.plan(files.length);
|
t.plan(files.length);
|
||||||
|
|
||||||
files.forEach(check);
|
files.forEach(check);
|
||||||
|
|
||||||
function check(testFile) {
|
function check(testData) {
|
||||||
var filename = path.join(dataPath, testFile);
|
var filename = path.join(dataPath, testData.source);
|
||||||
var html = readFileNormalized(filename);
|
var html = readFileNormalized(filename);
|
||||||
var expected = readFileNormalized(filename + '.commonjs.js');
|
var expected = readFileNormalized(path.join(dataPath, testData.expected));
|
||||||
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
// var expected = fs.readFileSync(filename.replace(".html", ".js")).toString();
|
||||||
var actual = reactTemplates.convertTemplateToReact(html, {modules: 'commonjs', name: 'div'}).replace(/\r/g, '').trim();
|
var actual = reactTemplates.convertTemplateToReact(html, testData.options).replace(/\r/g, '').trim();
|
||||||
t.equal(actual, expected);
|
compareAndWrite(t, actual, expected, filename);
|
||||||
if (actual !== expected) {
|
|
||||||
fs.writeFileSync(filename + '.actual.js', actual);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {string} html
|
||||||
|
* @return {string}
|
||||||
|
*/
|
||||||
function normalizeHtml(html) {
|
function normalizeHtml(html) {
|
||||||
return cheerio.load(html, {normalizeWhitespace: true}).html()
|
return cheerio.load(html, {normalizeWhitespace: true}).html()
|
||||||
.replace(/\>\s+/mg, '>')
|
.replace(/\>\s+/mg, '>')
|
||||||
@ -199,10 +195,7 @@ test('html tests', function (t) {
|
|||||||
var actual = React.renderToStaticMarkup(comp());
|
var actual = React.renderToStaticMarkup(comp());
|
||||||
actual = normalizeHtml(actual);
|
actual = normalizeHtml(actual);
|
||||||
expected = normalizeHtml(expected);
|
expected = normalizeHtml(expected);
|
||||||
t.equal(actual, expected);
|
compareAndWrite(t, actual, expected, filename);
|
||||||
if (actual !== expected) {
|
|
||||||
fs.writeFileSync(filename + '.actual.html', actual);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user