UNPKG

1.98 kBJavaScriptView Raw
1var assert = require('assert');
2
3var util = require ('util');
4var path = require ('path');
5
6var baseName = path.basename (__filename, path.extname (__filename));
7
8var df = require ("../");
9var flow = require ("../flow");
10
11// dirty, but works
12// TODO: need to rewrite
13require ("./common");
14
15var verbose = true;
16
17var tests = [];
18
19//process.on('uncaughtException', failure ('unhadled exception'));
20
21var dataflows = require ("./004-template.json");
22
23var templates = {
24 "jsonParseAndMerge": {
25 "$origin": "{$global.JSON}",
26 "$function": "parse",
27 "$mergeWith": "result"
28 },
29 "jsonParseAndSet": {
30 "$origin": "{$global.JSON}",
31 "$function": "parse",
32 "$set": "result"
33 },
34 "indexEqItem": {
35 "$function": "dfThrowUnlessEqual",
36 "$args": [
37 "[*every.index]",
38 "[*every.item]"
39 ]
40 },
41 "testHttpResource": {
42 "$class":"remoteResource",
43 "$method": "toBuffer"
44 }
45};
46
47// var testOnly = "test:08-every-template";
48var verbose = false;
49
50describe (baseName + " running templates", function () {
51 Object.keys (dataflows).forEach (function (token) {
52 var item = dataflows[token];
53
54 var method = it;
55
56 if (typeof testOnly !== "undefined" && testOnly) {
57 if (testOnly === token) {
58 method = it.only;
59 verbose = true;
60 } else {
61 return;
62 }
63 }
64
65 method (item.description ? item.description + ' ('+token+')' : token, function (done) {
66
67 var df = new flow ({
68 tasks: item.tasks,
69 templates: templates,
70 logger: verbose || "VERBOSE" in process.env ? undefined : function () {}
71 });
72
73 if (!df.ready) {
74 console.log ("dataflow not ready");
75 assert (item.expect === "no-dataflow" ? true : false);
76 done ();
77 return;
78 }
79
80 df.on ('completed', function () {
81 assert (item.expect === "ok" ? true : false);
82 done ();
83 });
84
85 df.on ('failed', function () {
86 assert (item.expect === "fail" ? true : false);
87 done ();
88 });
89
90 if (item.autoRun || item.autoRun == void 0)
91 df.run();
92
93 });
94 });
95});