UNPKG

3.78 kBJavaScriptView Raw
1var Compiler = require("../lib/compiler.js");
2
3var cw = {};
4
5module.exports = {
6 setUp: function(callback) {
7 if (cw.ctx) {
8 this.ctx = cw.ctx;
9 return callback();
10 }
11
12 var cfg = {
13 "tahoe": {
14 "name": "test",
15 "sourceDirs": ["test/blocks"],
16 "destDir": ".",
17 "publicDir": "."
18 }
19 };
20
21 var compiler = new Compiler(cfg);
22 var self = this;
23 compiler.compile(function(err) {
24 if (err) return console.error(err);
25 var ctx = require("../test-schema");
26 cw.ctx = ctx;
27 self.ctx = ctx;
28 callback();
29 });
30 },
31 "var": function(test) {
32 var s = this.ctx.renderSync("var", "var", {x:"value"});
33 test.equal(s, "value\n");
34 test.done();
35 },
36 "var/for": function(test) {
37 var s = this.ctx.renderSync("var/for", "C", {});
38 test.equal(s, "1\n2\n3\n");
39 test.done();
40 },
41 "parent_test": function(test) {
42 var s = this.ctx.renderSync("var", "parent_test", {x:"value"});
43 test.equal(s, "value\n");
44 test.done();
45 },
46 "anon_def_test": function(test) {
47 var s = this.ctx.renderSync("var", "anon_def_test", {x:"value"});
48 test.equal(s, "value\n");
49 test.done();
50 },
51 "call_parent": function(test) {
52 var s = this.ctx.renderSync("var", "call_parent", {});
53 test.equal(s, "parent\n");
54 test.done();
55 },
56 "context": function(test) {
57 var s = this.ctx.renderSync("var", "context", {x:"hello"});
58 var ex = "0-open hello\n1-open undefined\n2-open hello\nin hello\n2-close hello\n1-close undefined\n0-close hello\n";
59 test.equal(s, ex);
60 test.done();
61 },
62 "anon": function(test) {
63 var s = this.ctx.renderSync("anon", "B", {x:"hello"});
64 var ex = "hello\n";
65 test.equal(s, ex);
66 test.done();
67 },
68 "anon/cascade": function(test) {
69 var s = this.ctx.renderSync("anon/cascade", "D", {x:"hello"});
70 var ex = "d\nc\nb\na\nhello\na\nb\nc\nd\n";
71 test.equal(s, ex);
72 test.done();
73 },
74 "anon/cascade-named": function(test) {
75 var s = this.ctx.renderSync("anon/cascade-named", "D", {x:"hello"});
76 var ex = "d\nc\nb\na\nhello\na\nb\nc\nd\n";
77 test.equal(s, ex);
78 test.done();
79 },
80 "anon/new-def": function(test) {
81 var s = this.ctx.renderSync("anon/new-def", "D", {x:"hello"});
82 var ex = "a\nb\nd\nb\na\n";
83 test.equal(s, ex);
84 test.done();
85 },
86 "inheritance/simple": function(test) {
87 var s = this.ctx.renderSync("inheritance/simple", "B", {});
88 var ex = "hello\n";
89 test.equal(s, ex);
90 test.done();
91 },
92 "inheritance/multi": function(test) {
93 var s = this.ctx.renderSync("inheritance/multi", "C", {});
94 var ex = "hello from C\n";
95 test.equal(s, ex);
96 test.done();
97 },
98 "inheritance/named-defs": function(test) {
99 var s = this.ctx.renderSync("inheritance/named-defs", "C", {});
100 var ex = "a in C\nb in C\n";
101 test.equal(s, ex);
102 test.done();
103 },
104 "inheritance/cascade": function(test) {
105 var s = this.ctx.renderSync("inheritance/cascade", "C", {});
106 var ex = "a1\nb1\nb in C\nb2\na2\n";
107 test.equal(s, ex);
108 test.done();
109 },
110 "inheritance/default-defs": function(test) {
111 var s = this.ctx.renderSync("inheritance/default-defs", "C", {});
112 var ex = "a definition\n";
113 test.equal(s, ex);
114 test.done();
115 }
116};
\No newline at end of file