|
1 | 1 | var should = require("should");
|
2 | 2 | var loader = require("../");
|
3 | 3 |
|
4 |
| -var HEADER = "/*** IMPORTS FROM imports-loader ***/\n"; |
5 |
| - |
6 | 4 | describe("loader", function() {
|
7 |
| - it("should import nested objects", function() { |
8 |
| - loader.call({ |
9 |
| - query: "?abc.def.ghi=>1" |
10 |
| - }, "").should.be.eql(HEADER + |
11 |
| - "var abc = (abc || {});\n" + |
12 |
| - "abc.def = {};\n" + |
13 |
| - "abc.def.ghi = 1;\n\n\n" |
14 |
| - ); |
| 5 | + it("sets a header so the developer can see where imports-loader is being applied", function(){ |
| 6 | + var generatedCode = loader.call({ query: "?someVariable=>1" }); |
| 7 | + generatedCode.indexOf("/*** IMPORTS FROM imports-loader ***/\n").should.be.eql(0); |
| 8 | + }); |
| 9 | + |
| 10 | + it("can set a variable", function(){ |
| 11 | + var generatedCode = loader.call({ query: "?someVariable=>1" }); |
| 12 | + eval(generatedCode);; |
| 13 | + |
| 14 | + someVariable.should.be.eql(1); |
| 15 | + }); |
| 16 | + |
| 17 | + it("can set multiple values", function(){ |
| 18 | + var generatedCode = loader.call({ query: "?someVariable=>1,anotherVariable=>2" }); |
| 19 | + eval(generatedCode);; |
| 20 | + |
| 21 | + someVariable.should.be.eql(1); |
| 22 | + anotherVariable.should.be.eql(2); |
| 23 | + }); |
| 24 | + |
| 25 | + it("can set a nested variable", function(){ |
| 26 | + var generatedCode = loader.call({ query: "?someVariable.someProperty.someSubProperty=>1" }); |
| 27 | + eval(generatedCode);; |
| 28 | + |
| 29 | + someVariable.someProperty.someSubProperty.should.be.eql(1); |
| 30 | + }); |
| 31 | + |
| 32 | + describe("loading properties onto an existing variable", function(){ |
| 33 | + it("preserves the other original properties", function(){ |
| 34 | + var generatedCode = loader.call({ query: "?someVariable.someProperty=>1" }); |
| 35 | + var someVariable = { existingProperty: 123 } |
| 36 | + |
| 37 | + eval(generatedCode);; |
| 38 | + |
| 39 | + someVariable.existingProperty.should.be.eql(123); |
| 40 | + }); |
| 41 | + |
| 42 | + it("sets the new properties", function(){ |
| 43 | + var generatedCode = loader.call({ query: "?someVariable.someProperty=>1" }); |
| 44 | + var someVariable = { existingProperty: 123 } |
| 45 | + |
| 46 | + eval(generatedCode);; |
| 47 | + |
| 48 | + someVariable.someProperty.should.be.eql(1); |
| 49 | + }); |
15 | 50 | });
|
16 | 51 |
|
17 |
| - it("should import multiple nested objects", function() { |
18 |
| - loader.call({ |
19 |
| - query: "?abc.def.ghi=>1,foo.bar.baz=>2" |
20 |
| - }, "").should.be.eql(HEADER + |
21 |
| - // First import |
22 |
| - "var abc = (abc || {});\n" + |
23 |
| - "abc.def = {};\n" + |
24 |
| - "abc.def.ghi = 1;\n" + |
25 |
| - // Second import |
26 |
| - "var foo = (foo || {});\n" + |
27 |
| - "foo.bar = {};\n" + |
28 |
| - "foo.bar.baz = 2;\n\n\n" |
29 |
| - ); |
| 52 | + describe("loading sub-properties onto an existing property", function(){ |
| 53 | + it("preserves the other original properties", function(){ |
| 54 | + var generatedCode = loader.call({ query: "?someVariable.existingProperty.someSubProperty=>1" }); |
| 55 | + var someVariable = { existingProperty: { existingSubProperty: 123 } } |
| 56 | + |
| 57 | + eval(generatedCode);; |
| 58 | + |
| 59 | + someVariable.existingProperty.existingSubProperty.should.be.eql(123); |
| 60 | + }); |
| 61 | + |
| 62 | + it("sets the new sub-properties", function(){ |
| 63 | + var generatedCode = loader.call({ query: "?someVariable.existingProperty.someSubProperty=>1" }); |
| 64 | + var someVariable = { existingProperty: { existingSubProperty: 123 } } |
| 65 | + |
| 66 | + eval(generatedCode);; |
| 67 | + |
| 68 | + someVariable.existingProperty.someSubProperty.should.be.eql(1); |
| 69 | + }); |
30 | 70 | });
|
31 | 71 | });
|
0 commit comments