UNPKG

1.96 kBJavaScriptView Raw
1// Generated by CoffeeScript 1.10.0
2(function() {
3 var autocode, diffMark, fs, test;
4
5 autocode = require('../autocode');
6
7 fs = require('fs-extra');
8
9 diffMark = require('diff-mark');
10
11 test = function(opts) {
12 var diff, failed_tests, file, files, folder, folders, i, j, len, len1, libContent, outContent, project, test_dir;
13 this.path = (function() {
14 switch (true) {
15 case opts && opts._ && opts._[1]:
16 return opts._[1];
17 case opts && typeof opts.path === 'string':
18 return opts.path;
19 case this.path !== void 0:
20 return this.path;
21 default:
22 return process.cwd();
23 }
24 }).call(this);
25 test_dir = this.path + "/src/test";
26 if (!fs.existsSync(test_dir)) {
27 console.log("Test Directory (" + test_dir + ") does not exist.");
28 return;
29 }
30 folders = fs.readdirSync(test_dir);
31 failed_tests = [];
32 for (i = 0, len = folders.length; i < len; i++) {
33 folder = folders[i];
34 project = new autocode(test_dir + "/" + folder);
35 project.build();
36 files = fs.readdirSync(test_dir + "/" + folder + "/out");
37 for (j = 0, len1 = files.length; j < len1; j++) {
38 file = files[j];
39 if (fs.lstatSync(test_dir + "/" + folder + "/out/" + file).isDirectory()) {
40 continue;
41 }
42 outContent = fs.readFileSync(test_dir + "/" + folder + "/out/" + file);
43 libContent = fs.readFileSync(test_dir + "/" + folder + "/lib/" + file);
44 diff = diffMark.diff(outContent.toString('utf8'), libContent.toString('utf8'));
45 if (diff.length > 0) {
46 failed_tests.push("Test (" + folder + ") failed for file (" + file + ").");
47 }
48 }
49 }
50 if (failed_tests.length) {
51 console.log(failed_tests);
52 } else {
53 console.log("All tests passed for: " + this.path);
54 }
55 return fs.removeSync(test_dir + "/" + folder + "/lib");
56 };
57
58 module.exports = test;
59
60}).call(this);