UNPKG

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