magic_lamp 1.3.1 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +45 -7
- data/VERSION +1 -1
- data/app/assets/javascripts/magic_lamp/magic_lamp.js +39 -31
- data/lib/magic_lamp/fixture_creator.rb +13 -3
- data/spec/dummy/log/development.log +30764 -0
- data/spec/dummy/log/test.log +19827 -0
- data/spec/dummy/spec/magical/magic_lamp.rb +8 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/18650d8ff9b0a83b32e55b58917ec791 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/2ccef21649a61deac2c84f622753b77b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/5bbf09297502a156801e9c65f4bd3db7 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/88fe64427f1fff8e41ca8ad0170da88a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/8ed4b4f20fb65446181984e6df7d7c9b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/96210dc070e479fcee862294afe5efc1 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/972b6b0bb1fc0b1123077b4b2f4394bd +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/9825272284630c2926f661645205382a +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/b2a142b210c2cbfe4a58040684b3c33c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/cf573b52d944e8aea7f1dc03f9be9b2c +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/d98de652252dc6ae11b5b6db5588705b +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f0aa53eb377a5d7cc83657ef33b02d25 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f5d1b7d2ec1c89dc32cc982b43502dc8 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/f6256b2e4e609981d9eb420aae5bef46 +0 -0
- data/spec/dummy/tmp/cache/assets/development/sprockets/fdc3718e0a84d340a897f87179d95c84 +0 -0
- data/spec/dummy/tmp/pids/server.pid +1 -0
- data/spec/javascripts/genie_spec.js +2 -0
- data/spec/javascripts/magic_lamp_spec.js +66 -16
- data/spec/lib/fixture_creator_spec.rb +45 -21
- metadata +4 -2
@@ -10,3 +10,11 @@ MagicLamp.register_fixture do
|
|
10
10
|
@order = Order.new
|
11
11
|
render partial: "orders/form"
|
12
12
|
end
|
13
|
+
|
14
|
+
MagicLamp.fixture(name: "hash_to_jsoned") do
|
15
|
+
{ foo: "bar" }
|
16
|
+
end
|
17
|
+
|
18
|
+
MagicLamp.fixture(name: "just_some_string") do
|
19
|
+
"I'm a super awesome string"
|
20
|
+
end
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1 @@
|
|
1
|
+
89870
|
@@ -48,29 +48,25 @@ describe('MagicLamp', function() {
|
|
48
48
|
});
|
49
49
|
|
50
50
|
afterEach(function() {
|
51
|
-
_(['load', '
|
51
|
+
_(['load', 'loadRaw', 'loadJSON', 'clean']).each(function(method) {
|
52
52
|
delete window[method];
|
53
53
|
});
|
54
54
|
});
|
55
55
|
|
56
56
|
it('puts #load on window', function() {
|
57
|
-
expect(window.load).to.
|
57
|
+
expect(window.load).to.equal(subject.load);
|
58
58
|
});
|
59
59
|
|
60
|
-
it('
|
61
|
-
|
62
|
-
load('orders/foo');
|
63
|
-
expect(subject.load).to.have.been.calledWith('orders/foo');
|
60
|
+
it('puts #clean on window', function() {
|
61
|
+
expect(window.clean).to.equal(subject.clean);
|
64
62
|
});
|
65
63
|
|
66
|
-
it('puts #
|
67
|
-
expect(window.
|
64
|
+
it('puts #loadRaw on window', function() {
|
65
|
+
expect(window.loadRaw).to.equal(subject.loadRaw);
|
68
66
|
});
|
69
67
|
|
70
|
-
it('
|
71
|
-
|
72
|
-
clean();
|
73
|
-
expect(subject.clean).to.have.been.calledOnce;
|
68
|
+
it('puts #loadJSON on window', function() {
|
69
|
+
expect(window.loadJSON).to.equal(subject.loadJSON);
|
74
70
|
});
|
75
71
|
});
|
76
72
|
|
@@ -78,18 +74,61 @@ describe('MagicLamp', function() {
|
|
78
74
|
beforeEach(function() {
|
79
75
|
subject.initialize();
|
80
76
|
stub(subject.genie, 'load', true);
|
81
|
-
subject.load
|
77
|
+
var dummy = { load: subject.load };
|
78
|
+
dummy.load('foo', 'bar', 'baz');
|
82
79
|
});
|
83
80
|
|
84
81
|
afterEach(function() {
|
85
82
|
delete subject.genie;
|
86
83
|
});
|
87
84
|
|
88
|
-
it('passes through to its genie instance', function() {
|
85
|
+
it('passes through to its genie instance (and is bound)', function() {
|
89
86
|
expect(subject.genie.load).to.have.been.calledWith('foo', 'bar', 'baz');
|
90
87
|
});
|
91
88
|
});
|
92
89
|
|
90
|
+
describe('#loadRaw', function() {
|
91
|
+
var dummy;
|
92
|
+
var value;
|
93
|
+
|
94
|
+
beforeEach(function() {
|
95
|
+
subject.initialize();
|
96
|
+
value = 'the fixture';
|
97
|
+
stub(subject.genie, 'retrieveFixture', value);
|
98
|
+
dummy = { loadRaw: subject.loadRaw };
|
99
|
+
});
|
100
|
+
|
101
|
+
afterEach(function() {
|
102
|
+
delete subject.genie;
|
103
|
+
});
|
104
|
+
|
105
|
+
it('calls through to its genie\'s #retrieveFixture (and is bound)', function() {
|
106
|
+
expect(dummy.loadRaw('foo')).to.equal(value);
|
107
|
+
expect(subject.genie.retrieveFixture).to.have.been.calledWith('foo');
|
108
|
+
});
|
109
|
+
});
|
110
|
+
|
111
|
+
describe('#loadJSON', function() {
|
112
|
+
var json;
|
113
|
+
var dummy;
|
114
|
+
|
115
|
+
beforeEach(function() {
|
116
|
+
json = { foo: 'bar' };
|
117
|
+
subject.initialize();
|
118
|
+
dummy = { loadJSON: subject.loadJSON };
|
119
|
+
stub(subject, 'loadRaw', JSON.stringify(json));
|
120
|
+
});
|
121
|
+
|
122
|
+
afterEach(function() {
|
123
|
+
delete subject.genie;
|
124
|
+
});
|
125
|
+
|
126
|
+
it('returns the parsed JSON from the fixture (and is bound)', function() {
|
127
|
+
expect(dummy.loadJSON('foo')).to.be.like(json);
|
128
|
+
expect(subject.loadRaw).to.have.been.calledWith('foo');
|
129
|
+
});
|
130
|
+
});
|
131
|
+
|
93
132
|
describe('#preload', function() {
|
94
133
|
beforeEach(function() {
|
95
134
|
subject.initialize();
|
@@ -110,14 +149,15 @@ describe('MagicLamp', function() {
|
|
110
149
|
beforeEach(function() {
|
111
150
|
subject.initialize();
|
112
151
|
stub(subject.genie, 'removeFixtureContainer', true);
|
113
|
-
subject.clean
|
152
|
+
var dummy = { clean: subject.clean };
|
153
|
+
dummy.clean();
|
114
154
|
});
|
115
155
|
|
116
156
|
afterEach(function() {
|
117
157
|
delete subject.genie;
|
118
158
|
});
|
119
159
|
|
120
|
-
it('calls removeFixtureContainer on its genie instance', function() {
|
160
|
+
it('calls removeFixtureContainer on its genie instance (and is bound)', function() {
|
121
161
|
expect(subject.genie.removeFixtureContainer).to.have.been.calledOnce;
|
122
162
|
});
|
123
163
|
});
|
@@ -232,5 +272,15 @@ describe('MagicLamp', function() {
|
|
232
272
|
subject.load('arbitrary/orders/admin_extending', 'orders/foo');
|
233
273
|
expect(testFixtureContainer().innerHTML).to.equal('Stevenson\nPaulson\nfoo\n');
|
234
274
|
});
|
275
|
+
|
276
|
+
it('can load JSON', function() {
|
277
|
+
var json = subject.loadJSON('hash_to_jsoned');
|
278
|
+
expect(json).to.be.like({ foo: 'bar' });
|
279
|
+
});
|
280
|
+
|
281
|
+
it('can load strings', function() {
|
282
|
+
var string = subject.loadRaw('just_some_string');
|
283
|
+
expect(string).to.equal("I'm a super awesome string");
|
284
|
+
});
|
235
285
|
});
|
236
286
|
});
|
@@ -10,28 +10,56 @@ describe MagicLamp::FixtureCreator do
|
|
10
10
|
end
|
11
11
|
|
12
12
|
describe "#generate_template" do
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
context "render called" do
|
14
|
+
let(:rendered) do
|
15
|
+
subject.generate_template(OrdersController, []) do
|
16
|
+
render :foo
|
17
|
+
end
|
16
18
|
end
|
17
|
-
end
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
20
|
+
it "returns the template as a string" do
|
21
|
+
expect(rendered).to eq("foo\n")
|
22
|
+
end
|
22
23
|
|
23
|
-
|
24
|
-
|
24
|
+
it "does not render the layout by default" do
|
25
|
+
expect(rendered).to_not match(/The layout/)
|
26
|
+
end
|
27
|
+
|
28
|
+
it "executes the callbacks around generation of the template" do
|
29
|
+
dummy = double
|
30
|
+
expect(subject).to receive(:execute_before_each_callback).ordered
|
31
|
+
expect(dummy).to receive(:render).ordered
|
32
|
+
expect(subject).to receive(:execute_after_each_callback).ordered
|
33
|
+
subject.generate_template(OrdersController, []) do
|
34
|
+
dummy.render
|
35
|
+
render :foo
|
36
|
+
end
|
37
|
+
end
|
25
38
|
end
|
26
39
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
40
|
+
context "render not called" do
|
41
|
+
context "render block returns a string" do
|
42
|
+
let(:rendered) do
|
43
|
+
subject.generate_template(OrdersController, []) do
|
44
|
+
{ foo: "bar" }.to_json
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
it "returns the string" do
|
49
|
+
expect(rendered).to eq({ foo: "bar" }.to_json)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
|
53
|
+
context "render block returns someting else" do
|
54
|
+
let(:rendered) do
|
55
|
+
subject.generate_template(OrdersController, []) do
|
56
|
+
{ foo: "bar" }
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
it "returns the #to_json representation of the object" do
|
61
|
+
expect(rendered).to eq({ foo: "bar" }.to_json)
|
62
|
+
end
|
35
63
|
end
|
36
64
|
end
|
37
65
|
end
|
@@ -60,10 +88,6 @@ describe MagicLamp::FixtureCreator do
|
|
60
88
|
end.to_not raise_error
|
61
89
|
end
|
62
90
|
|
63
|
-
it "has had its state set by the given block" do
|
64
|
-
expect(controller.params[:foo]).to eq("bar")
|
65
|
-
end
|
66
|
-
|
67
91
|
it "has been extended with the extensions" do
|
68
92
|
expect(controller.class.ancestors).to_not include(Foo)
|
69
93
|
expect(controller.class.ancestors).to_not include(Bar)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: magic_lamp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Michael Crismali
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-12-
|
11
|
+
date: 2014-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -394,6 +394,7 @@ files:
|
|
394
394
|
- spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
395
395
|
- spec/dummy/tmp/cache/assets/test/sprockets/e4468469b981ba614a29626880137332
|
396
396
|
- spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
397
|
+
- spec/dummy/tmp/pids/server.pid
|
397
398
|
- spec/javascripts/genie_spec.js
|
398
399
|
- spec/javascripts/magic_lamp_spec.js
|
399
400
|
- spec/javascripts/spec_helper.js
|
@@ -605,6 +606,7 @@ test_files:
|
|
605
606
|
- spec/dummy/tmp/cache/assets/test/sprockets/d771ace226fc8215a3572e0aa35bb0d6
|
606
607
|
- spec/dummy/tmp/cache/assets/test/sprockets/e4468469b981ba614a29626880137332
|
607
608
|
- spec/dummy/tmp/cache/assets/test/sprockets/f7cbd26ba1d28d48de824f0e94586655
|
609
|
+
- spec/dummy/tmp/pids/server.pid
|
608
610
|
- spec/javascripts/genie_spec.js
|
609
611
|
- spec/javascripts/magic_lamp_spec.js
|
610
612
|
- spec/javascripts/spec_helper.js
|