UNPKG

1.34 kBJavaScriptView Raw
1var Q = require("q");
2var fs = require("fs");
3var path = require("path");
4var assert = require("assert");
5var assign = require("lodash/assign");
6var generate = require("../lib/generate");
7var defaults = require("lodash/defaults");
8
9var readFile = Q.denodeify(fs.readFile);
10var isWindows = /^win/.test(process.platform);
11
12module.exports = function convert(args) {
13 var converter = args.converter;
14 var sourceFileName = args.sourceFileName;
15 var expectedFileName = args.expectedFileName;
16 var options = defaults(args.options || {}, { forceES5: true });
17
18 var srcAddress = path.join(__dirname, "tests", sourceFileName + ".js");
19
20 return readFile(srcAddress)
21 .then(function(data) {
22 var load = assign(
23 {},
24 {
25 address: srcAddress,
26 name: sourceFileName,
27 source: data.toString()
28 },
29 args.load
30 );
31
32 return generate(converter(load, options)).code;
33 })
34 .then(function(actual) {
35 return Promise.all([
36 actual,
37 readFile(
38 path.join(__dirname, "tests", "expected", expectedFileName + ".js")
39 )
40 ]);
41 })
42 .then(function(data) {
43 var actual = data[0].trim();
44 var expected = data[1].toString().trim();
45
46 if (isWindows) {
47 actual = actual.replace(/[\n]/g, "");
48 expected = expected.replace(/[\r\n]/g, "");
49 }
50
51 assert.equal(actual, expected, "expected equals result");
52 });
53};