1 | var Compiler = require("../lib/compiler.js");
|
2 |
|
3 | var cw = {};
|
4 |
|
5 | module.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 |