mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
Added ability for template test to implement "handleCompileError"
This commit is contained in:
parent
0f6a615efa
commit
93c6c9b0e0
40
test/util.js
40
test/util.js
@ -22,11 +22,6 @@ function createTestRender(options) {
|
|||||||
var actualPath = nodePath.join(dir, 'actual.html');
|
var actualPath = nodePath.join(dir, 'actual.html');
|
||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
// if (foundDirs[dir]) {
|
|
||||||
// console.log('DUPLICATE DIRECTORY: ' + dir);
|
|
||||||
// }
|
|
||||||
// foundDirs[dir] = true;
|
|
||||||
|
|
||||||
var marko = require('../');
|
var marko = require('../');
|
||||||
|
|
||||||
require('../compiler').defaultOptions.checkUpToDate = false;
|
require('../compiler').defaultOptions.checkUpToDate = false;
|
||||||
@ -34,7 +29,25 @@ function createTestRender(options) {
|
|||||||
var AsyncWriter = marko.AsyncWriter;
|
var AsyncWriter = marko.AsyncWriter;
|
||||||
var out = options.out || new AsyncWriter(new StringBuilder());
|
var out = options.out || new AsyncWriter(new StringBuilder());
|
||||||
|
|
||||||
marko.render(templatePath, templateData, out)
|
var template;
|
||||||
|
|
||||||
|
try {
|
||||||
|
template = marko.load(templatePath);
|
||||||
|
} catch(err) {
|
||||||
|
if (options.handleCompileError) {
|
||||||
|
try {
|
||||||
|
options.handleCompileError(err);
|
||||||
|
done();
|
||||||
|
} catch(err) {
|
||||||
|
done(err);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
done(err);
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
template.render(templateData, out)
|
||||||
.on('finish', function() {
|
.on('finish', function() {
|
||||||
var output = out.getOutput();
|
var output = out.getOutput();
|
||||||
|
|
||||||
@ -56,7 +69,18 @@ function createTestRender(options) {
|
|||||||
|
|
||||||
done();
|
done();
|
||||||
})
|
})
|
||||||
.on('error', done)
|
.on('error', function(err) {
|
||||||
|
if (options.handleError) {
|
||||||
|
try {
|
||||||
|
options.handleError(err);
|
||||||
|
done();
|
||||||
|
} catch(err) {
|
||||||
|
done(err);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
done(err);
|
||||||
|
}
|
||||||
|
})
|
||||||
.end();
|
.end();
|
||||||
|
|
||||||
};
|
};
|
||||||
@ -83,7 +107,7 @@ exports.loadRenderTests = function(dirname, desc, options) {
|
|||||||
|
|
||||||
var testOptions = testInfo.options;
|
var testOptions = testInfo.options;
|
||||||
|
|
||||||
testRender(dir, templateData || {}, expectedFile, testOptions, done);
|
testRender(dir, templateData || {}, expectedFile, testOptions || {}, done);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user