mirror of
https://github.com/marko-js/marko.git
synced 2026-02-01 16:07:13 +00:00
* update autotest api and first few test suites * refactor components-browser to use the new autotest api * minor changes to update adjustIndent and components-pages to new autotest api * refactor and combine async-render, deprecated-async-fragments, and render suites * migrate compiler tests to new autotest runner * migrate components-compilation tests to use new autotest api * migrate most remaining test runners to new autotest api * update adjustIndent * migrate express tests to new autotest api * switch from compare to snapshot * move versions into directory * remove snapshot sequences, prefix to name, suffix to ext * refactor autotest * keep node 4 happy: don't use destructured parameters * use strict * update contributing document to reflect new autotest api * better snapshot errors with clickable path * remove old vdomSkip property, fix some normalization in the render test runner, skip only tests that need to be skipped * for generated vdom expectations use expected.html instead of rerendering the html template, update expected files that had editor added newlines at the end * remove half-finished test that was intended to replace another test (render/fixtures/preserveWhitespace-load-option) - we'll keep the original
57 lines
1.5 KiB
JavaScript
57 lines
1.5 KiB
JavaScript
"use strict";
|
|
|
|
require("../__util__/test-init");
|
|
|
|
var chai = require("chai");
|
|
chai.config.includeStack = true;
|
|
var compiler = require("../../compiler");
|
|
var autotest = require("../autotest");
|
|
var fs = require("fs");
|
|
|
|
autotest("fixtures", fixture => {
|
|
let test = fixture.test;
|
|
let resolve = fixture.resolve;
|
|
let snapshot = fixture.snapshot;
|
|
test(done => {
|
|
var indexPath = resolve("index.js");
|
|
var inlineCompiler = compiler.createInlineCompiler(indexPath);
|
|
|
|
var compilerOptions = { writeVersionComment: false };
|
|
var src = fs.readFileSync(indexPath, { encoding: "utf8" });
|
|
|
|
src = src.replace(/marko`([^`]*)`/g, function(match, templateSrc) {
|
|
var compiled = inlineCompiler.compile(templateSrc, compilerOptions);
|
|
return compiled.code;
|
|
});
|
|
|
|
var staticCode = inlineCompiler.staticCode;
|
|
|
|
if (staticCode) {
|
|
src = staticCode + "\n\n" + src;
|
|
}
|
|
|
|
var outputFile = resolve("index.generated.js");
|
|
fs.writeFileSync(outputFile, src, { encoding: "utf8" });
|
|
|
|
var func = require(outputFile);
|
|
|
|
function handleOutput(result) {
|
|
snapshot(result.toString(), ".html");
|
|
done();
|
|
}
|
|
|
|
if (func.length === 1) {
|
|
func((err, result) => {
|
|
if (err) {
|
|
return done(err);
|
|
}
|
|
|
|
handleOutput(result);
|
|
});
|
|
} else {
|
|
let result = func();
|
|
handleOutput(result);
|
|
}
|
|
});
|
|
});
|