bullet 4.7.1 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.travis.yml +17 -17
- data/CHANGELOG.md +15 -0
- data/Gemfile +9 -2
- data/Gemfile.mongoid-2.4 +22 -0
- data/Gemfile.mongoid-2.5 +22 -0
- data/Gemfile.mongoid-2.6 +22 -0
- data/Gemfile.mongoid-2.7 +22 -0
- data/Gemfile.mongoid-2.8 +22 -0
- data/Gemfile.mongoid-3.0 +22 -0
- data/Gemfile.mongoid-3.1 +22 -0
- data/Gemfile.rails-3.0 +21 -0
- data/Gemfile.rails-3.1 +21 -0
- data/Gemfile.rails-3.2 +21 -0
- data/Gemfile.rails-4.0 +21 -0
- data/{Gemfile.rails-3.0.20 → Gemfile.rails-4.1} +1 -1
- data/README.md +24 -23
- data/Rakefile +13 -6
- data/lib/bullet.rb +1 -1
- data/lib/bullet/active_record41.rb +97 -0
- data/lib/bullet/dependency.rb +11 -1
- data/lib/bullet/mongoid4x.rb +1 -1
- data/lib/bullet/registry/base.rb +1 -1
- data/lib/bullet/version.rb +1 -1
- data/spec/bullet/detector/association_spec.rb +8 -8
- data/spec/bullet/detector/base_spec.rb +1 -1
- data/spec/bullet/detector/counter_cache_spec.rb +12 -12
- data/spec/bullet/detector/n_plus_one_query_spec.rb +32 -32
- data/spec/bullet/detector/unused_eager_loading_spec.rb +18 -18
- data/spec/bullet/ext/object_spec.rb +2 -2
- data/spec/bullet/ext/string_spec.rb +2 -2
- data/spec/bullet/notification/base_spec.rb +19 -13
- data/spec/bullet/notification/counter_cache_spec.rb +2 -2
- data/spec/bullet/notification/n_plus_one_query_spec.rb +3 -3
- data/spec/bullet/notification/unused_eager_loading_spec.rb +2 -2
- data/spec/bullet/notification_collector_spec.rb +4 -4
- data/spec/bullet/rack_spec.rb +21 -21
- data/spec/bullet/registry/association_spec.rb +3 -3
- data/spec/bullet/registry/base_spec.rb +6 -6
- data/spec/bullet/registry/object_spec.rb +2 -2
- data/spec/integration/active_record3/association_spec.rb +107 -107
- data/spec/integration/active_record4/association_spec.rb +105 -105
- data/spec/integration/counter_cache_spec.rb +4 -4
- data/spec/integration/mongoid/association_spec.rb +52 -52
- data/spec/spec_helper.rb +0 -1
- data/test.sh +12 -11
- metadata +25 -38
- data/.ruby-gemset +0 -1
- data/.ruby-version +0 -1
- data/Gemfile.lock +0 -160
- data/Gemfile.mongoid-2.4.12 +0 -15
- data/Gemfile.mongoid-2.4.12.lock +0 -163
- data/Gemfile.mongoid-2.5.2 +0 -15
- data/Gemfile.mongoid-2.5.2.lock +0 -163
- data/Gemfile.mongoid-2.6.0 +0 -15
- data/Gemfile.mongoid-2.6.0.lock +0 -163
- data/Gemfile.mongoid-2.7.1 +0 -15
- data/Gemfile.mongoid-2.7.1.lock +0 -163
- data/Gemfile.mongoid-2.8.1 +0 -15
- data/Gemfile.mongoid-2.8.1.lock +0 -166
- data/Gemfile.mongoid-3.0.23 +0 -15
- data/Gemfile.mongoid-3.0.23.lock +0 -163
- data/Gemfile.mongoid-3.1.5 +0 -15
- data/Gemfile.mongoid-3.1.5.lock +0 -163
- data/Gemfile.mongoid.lock +0 -167
- data/Gemfile.rails-3.0.20.lock +0 -147
- data/Gemfile.rails-3.1.12 +0 -14
- data/Gemfile.rails-3.1.12.lock +0 -157
- data/Gemfile.rails-3.2.15 +0 -14
- data/Gemfile.rails-3.2.15.lock +0 -155
- data/Gemfile.rails-4.0.1 +0 -14
- data/Gemfile.rails-4.0.1.lock +0 -150
@@ -4,13 +4,13 @@ describe Object do
|
|
4
4
|
context "bullet_ar_key" do
|
5
5
|
it "should return class and id composition" do
|
6
6
|
post = Post.first
|
7
|
-
post.bullet_ar_key.
|
7
|
+
expect(post.bullet_ar_key).to eq("Post:#{post.id}")
|
8
8
|
end
|
9
9
|
|
10
10
|
if mongoid?
|
11
11
|
it "should return class with namesapce and id composition" do
|
12
12
|
post = Mongoid::Post.first
|
13
|
-
post.bullet_ar_key.
|
13
|
+
expect(post.bullet_ar_key).to eq("Mongoid::Post:#{post.id}")
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -3,11 +3,11 @@ require 'spec_helper'
|
|
3
3
|
describe String do
|
4
4
|
context "bullet_class_name" do
|
5
5
|
it "should only return class name" do
|
6
|
-
"Post:1".bullet_class_name.
|
6
|
+
expect("Post:1".bullet_class_name).to eq("Post")
|
7
7
|
end
|
8
8
|
|
9
9
|
it "should return class name with namespace" do
|
10
|
-
"Mongoid::Post:1234567890".bullet_class_name.
|
10
|
+
expect("Mongoid::Post:1234567890".bullet_class_name).to eq("Mongoid::Post")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -7,49 +7,54 @@ module Bullet
|
|
7
7
|
|
8
8
|
context "#title" do
|
9
9
|
it "should raise NoMethodError" do
|
10
|
-
|
10
|
+
expect { subject.title }.to raise_error(NoMethodError)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context "#body" do
|
15
15
|
it "should raise NoMethodError" do
|
16
|
-
|
16
|
+
expect { subject.body }.to raise_error(NoMethodError)
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
20
20
|
context "#whoami" do
|
21
21
|
it "should display user name" do
|
22
22
|
user = `whoami`.chomp
|
23
|
-
subject.whoami.
|
23
|
+
expect(subject.whoami).to eq("user: #{user}")
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
context "#body_with_caller" do
|
28
28
|
it "should return body" do
|
29
|
-
subject.
|
30
|
-
subject.body_with_caller.
|
29
|
+
allow(subject).to receive(:body).and_return("body")
|
30
|
+
expect(subject.body_with_caller).to eq("body")
|
31
31
|
end
|
32
32
|
end
|
33
33
|
|
34
34
|
context "#standard_notice" do
|
35
35
|
it "should return title + body" do
|
36
|
-
subject.
|
37
|
-
subject.
|
36
|
+
allow(subject).to receive(:title).and_return("title")
|
37
|
+
allow(subject).to receive(:body).and_return("body")
|
38
|
+
expect(subject.standard_notice).to eq("title\nbody")
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
41
42
|
context "#full_notice" do
|
42
43
|
it "should return whoami + url + title + body_with_caller" do
|
43
|
-
subject.
|
44
|
-
subject.
|
44
|
+
allow(subject).to receive(:whoami).and_return("whoami")
|
45
|
+
allow(subject).to receive(:url).and_return("url")
|
46
|
+
allow(subject).to receive(:title).and_return("title")
|
47
|
+
allow(subject).to receive(:body_with_caller).and_return("body_with_caller")
|
48
|
+
expect(subject.full_notice).to eq("whoami\nurl\ntitle\nbody_with_caller")
|
45
49
|
end
|
46
50
|
end
|
47
51
|
|
48
52
|
context "#notify_inline" do
|
49
53
|
it "should send full_notice to notifier" do
|
50
54
|
notifier = double
|
51
|
-
subject.
|
52
|
-
|
55
|
+
allow(subject).to receive(:notifier).and_return(notifier)
|
56
|
+
allow(subject).to receive(:full_notice).and_return("full_notice")
|
57
|
+
expect(notifier).to receive(:inline_notify).with("full_notice")
|
53
58
|
subject.notify_inline
|
54
59
|
end
|
55
60
|
end
|
@@ -57,8 +62,9 @@ module Bullet
|
|
57
62
|
context "#notify_out_of_channel" do
|
58
63
|
it "should send full_out_of_channel to notifier" do
|
59
64
|
notifier = double
|
60
|
-
subject.
|
61
|
-
|
65
|
+
allow(subject).to receive(:notifier).and_return(notifier)
|
66
|
+
allow(subject).to receive(:full_notice).and_return("full_notice")
|
67
|
+
expect(notifier).to receive(:out_of_channel_notify).with("full_notice")
|
62
68
|
subject.notify_out_of_channel
|
63
69
|
end
|
64
70
|
end
|
@@ -5,8 +5,8 @@ module Bullet
|
|
5
5
|
describe CounterCache do
|
6
6
|
subject { CounterCache.new(Post, [:comments, :votes]) }
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
it { expect(subject.body).to eq(" Post => [:comments, :votes]") }
|
9
|
+
it { expect(subject.title).to eq("Need Counter Cache") }
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -5,9 +5,9 @@ module Bullet
|
|
5
5
|
describe NPlusOneQuery do
|
6
6
|
subject { NPlusOneQuery.new([["caller1", "caller2"]], Post, [:comments, :votes], "path") }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
it { expect(subject.body_with_caller).to eq(" Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]\nN+1 Query method call stack\n caller1\n caller2") }
|
9
|
+
it { expect(subject.body).to eq(" Post => [:comments, :votes]\n Add to your finder: :include => [:comments, :votes]") }
|
10
|
+
it { expect(subject.title).to eq("N+1 Query in path") }
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -5,8 +5,8 @@ module Bullet
|
|
5
5
|
describe UnusedEagerLoading do
|
6
6
|
subject { UnusedEagerLoading.new(Post, [:comments, :votes], "path") }
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
it { expect(subject.body).to eq(" Post => [:comments, :votes]\n Remove from your finder: :include => [:comments, :votes]") }
|
9
|
+
it { expect(subject.title).to eq("Unused Eager Loading in path") }
|
10
10
|
end
|
11
11
|
end
|
12
12
|
end
|
@@ -7,25 +7,25 @@ module Bullet
|
|
7
7
|
context "#add" do
|
8
8
|
it "should add a value" do
|
9
9
|
subject.add("value1")
|
10
|
-
subject.collection.
|
10
|
+
expect(subject.collection).to be_include("value1")
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context "#reset" do
|
15
15
|
it "should reset collector" do
|
16
16
|
subject.reset
|
17
|
-
subject.collection.
|
17
|
+
expect(subject.collection).to be_empty
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
context "#notifications_present?" do
|
22
22
|
it "should be true if collection is not empty" do
|
23
|
-
subject.
|
23
|
+
expect(subject).to be_notifications_present
|
24
24
|
end
|
25
25
|
|
26
26
|
it "should be false if collection is empty" do
|
27
27
|
subject.reset
|
28
|
-
subject.
|
28
|
+
expect(subject).not_to be_notifications_present
|
29
29
|
end
|
30
30
|
end
|
31
31
|
end
|
data/spec/bullet/rack_spec.rb
CHANGED
@@ -10,56 +10,56 @@ module Bullet
|
|
10
10
|
it "should be true if Content-Type is text/html and http body contains html tag" do
|
11
11
|
headers = {"Content-Type" => "text/html"}
|
12
12
|
response = double(:body => "<html><head></head><body></body></html>")
|
13
|
-
middleware.
|
13
|
+
expect(middleware).to be_html_request(headers, response)
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should be true if Content-Type is text/html and http body contains html tag with attributes" do
|
17
17
|
headers = {"Content-Type" => "text/html"}
|
18
18
|
response = double(:body => "<html attr='hello'><head></head><body></body></html>")
|
19
|
-
middleware.
|
19
|
+
expect(middleware).to be_html_request(headers, response)
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should be false if there is no Content-Type header" do
|
23
23
|
headers = {}
|
24
24
|
response = double(:body => "<html><head></head><body></body></html>")
|
25
|
-
middleware.
|
25
|
+
expect(middleware).not_to be_html_request(headers, response)
|
26
26
|
end
|
27
27
|
|
28
28
|
it "should be false if Content-Type is javascript" do
|
29
29
|
headers = {"Content-Type" => "text/javascript"}
|
30
30
|
response = double(:body => "<html><head></head><body></body></html>")
|
31
|
-
middleware.
|
31
|
+
expect(middleware).not_to be_html_request(headers, response)
|
32
32
|
end
|
33
33
|
|
34
34
|
it "should be false if response body doesn't contain html tag" do
|
35
35
|
headers = {"Content-Type" => "text/html"}
|
36
36
|
response = double(:body => "<div>Partial</div>")
|
37
|
-
middleware.
|
37
|
+
expect(middleware).not_to be_html_request(headers, response)
|
38
38
|
end
|
39
39
|
end
|
40
40
|
|
41
41
|
context "empty?" do
|
42
42
|
it "should be false if response is a string and not empty" do
|
43
43
|
response = double(:body => "<html><head></head><body></body></html>")
|
44
|
-
middleware.
|
44
|
+
expect(middleware).not_to be_empty(response)
|
45
45
|
end
|
46
46
|
|
47
47
|
it "should be true if response is not found" do
|
48
48
|
response = ["Not Found"]
|
49
|
-
middleware.
|
49
|
+
expect(middleware).to be_empty(response)
|
50
50
|
end
|
51
51
|
|
52
52
|
it "should be true if response body is empty" do
|
53
53
|
response = double(:body => "")
|
54
|
-
middleware.
|
54
|
+
expect(middleware).to be_empty(response)
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
58
|
context "#call" do
|
59
59
|
context "when Bullet is enabled" do
|
60
60
|
it "should invoke Bullet.start_request and Bullet.end_request" do
|
61
|
-
Bullet.
|
62
|
-
Bullet.
|
61
|
+
expect(Bullet).to receive(:start_request)
|
62
|
+
expect(Bullet).to receive(:end_request)
|
63
63
|
middleware.call([])
|
64
64
|
end
|
65
65
|
|
@@ -67,34 +67,34 @@ module Bullet
|
|
67
67
|
expected_response = Support::ResponseDouble.new "Actual body"
|
68
68
|
app.response = expected_response
|
69
69
|
status, headers, response = middleware.call([])
|
70
|
-
response.
|
70
|
+
expect(response).to eq(expected_response)
|
71
71
|
end
|
72
72
|
|
73
73
|
it "should change response body if notification is active" do
|
74
|
-
Bullet.
|
75
|
-
Bullet.
|
76
|
-
Bullet.
|
74
|
+
expect(Bullet).to receive(:notification?).and_return(true)
|
75
|
+
expect(Bullet).to receive(:gather_inline_notifications).and_return("<bullet></bullet>")
|
76
|
+
expect(Bullet).to receive(:perform_out_of_channel_notifications)
|
77
77
|
status, headers, response = middleware.call([200, {"Content-Type" => "text/html"}])
|
78
|
-
headers["Content-Length"].
|
79
|
-
response.
|
78
|
+
expect(headers["Content-Length"]).to eq("56")
|
79
|
+
expect(response).to eq(["<html><head></head><body></body></html><bullet></bullet>"])
|
80
80
|
end
|
81
81
|
|
82
82
|
it "should set the right Content-Length if response body contains accents" do
|
83
83
|
response = Support::ResponseDouble.new
|
84
84
|
response.body = "<html><head></head><body>é</body></html>"
|
85
85
|
app.response = response
|
86
|
-
Bullet.
|
87
|
-
Bullet.
|
86
|
+
expect(Bullet).to receive(:notification?).and_return(true)
|
87
|
+
expect(Bullet).to receive(:gather_inline_notifications).and_return("<bullet></bullet>")
|
88
88
|
status, headers, response = middleware.call([200, {"Content-Type" => "text/html"}])
|
89
|
-
headers["Content-Length"].
|
89
|
+
expect(headers["Content-Length"]).to eq("58")
|
90
90
|
end
|
91
91
|
end
|
92
92
|
|
93
93
|
context "when Bullet is disabled" do
|
94
|
-
before(:each) { Bullet.
|
94
|
+
before(:each) { allow(Bullet).to receive(:enable?).and_return(false) }
|
95
95
|
|
96
96
|
it "should not call Bullet.start_request" do
|
97
|
-
Bullet.
|
97
|
+
expect(Bullet).not_to receive(:start_request)
|
98
98
|
middleware.call([])
|
99
99
|
end
|
100
100
|
end
|
@@ -8,17 +8,17 @@ module Bullet
|
|
8
8
|
context "#merge" do
|
9
9
|
it "should merge key/value" do
|
10
10
|
subject.merge("key0", "value0")
|
11
|
-
subject["key0"].
|
11
|
+
expect(subject["key0"]).to be_include("value0")
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
15
15
|
context "#similarly_associated" do
|
16
16
|
it "should return similarly associated keys" do
|
17
|
-
subject.similarly_associated("key1", Set.new(["value"])).
|
17
|
+
expect(subject.similarly_associated("key1", Set.new(["value"]))).to eq(["key1", "key2"])
|
18
18
|
end
|
19
19
|
|
20
20
|
it "should return empty if key does not exist" do
|
21
|
-
subject.similarly_associated("key3", Set.new(["value"])).
|
21
|
+
expect(subject.similarly_associated("key3", Set.new(["value"]))).to be_empty
|
22
22
|
end
|
23
23
|
end
|
24
24
|
end
|
@@ -7,36 +7,36 @@ module Bullet
|
|
7
7
|
|
8
8
|
context "#[]" do
|
9
9
|
it "should get value by key" do
|
10
|
-
subject["key"].
|
10
|
+
expect(subject["key"]).to eq(Set.new(["value"]))
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
14
14
|
context "#delete" do
|
15
15
|
it "should delete key" do
|
16
16
|
subject.delete("key")
|
17
|
-
subject["key"].
|
17
|
+
expect(subject["key"]).to be_nil
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
21
|
context "#add" do
|
22
22
|
it "should add value with string" do
|
23
23
|
subject.add("key", "new_value")
|
24
|
-
subject["key"].
|
24
|
+
expect(subject["key"]).to eq(Set.new(["value", "new_value"]))
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should add value with array" do
|
28
28
|
subject.add("key", ["value1", "value2"])
|
29
|
-
subject["key"].
|
29
|
+
expect(subject["key"]).to eq(Set.new(["value", "value1", "value2"]))
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
context "#include?" do
|
34
34
|
it "should include key/value" do
|
35
|
-
subject.include?("key", "value").
|
35
|
+
expect(subject.include?("key", "value")).to eq true
|
36
36
|
end
|
37
37
|
|
38
38
|
it "should not include wrong key/value" do
|
39
|
-
subject.include?("key", "val").
|
39
|
+
expect(subject.include?("key", "val")).to eq false
|
40
40
|
end
|
41
41
|
end
|
42
42
|
end
|
@@ -10,14 +10,14 @@ module Bullet
|
|
10
10
|
|
11
11
|
context "#include?" do
|
12
12
|
it "should include the object" do
|
13
|
-
subject.
|
13
|
+
expect(subject).to be_include(post.bullet_ar_key)
|
14
14
|
end
|
15
15
|
end
|
16
16
|
|
17
17
|
context "#add" do
|
18
18
|
it "should add an object" do
|
19
19
|
subject.add(another_post.bullet_ar_key)
|
20
|
-
subject.
|
20
|
+
expect(subject).to be_include(another_post.bullet_ar_key)
|
21
21
|
end
|
22
22
|
end
|
23
23
|
end
|
@@ -17,9 +17,9 @@ if active_record3?
|
|
17
17
|
post.comments.map(&:name)
|
18
18
|
end
|
19
19
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
20
|
-
Bullet::Detector::Association.
|
20
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
21
21
|
|
22
|
-
Bullet::Detector::Association.
|
22
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Post, :comments)
|
23
23
|
end
|
24
24
|
|
25
25
|
it "should detect preload with post => comments" do
|
@@ -27,25 +27,25 @@ if active_record3?
|
|
27
27
|
post.comments.map(&:name)
|
28
28
|
end
|
29
29
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
30
|
-
Bullet::Detector::Association.
|
30
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
31
31
|
|
32
|
-
Bullet::Detector::Association.
|
32
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
33
33
|
end
|
34
34
|
|
35
35
|
it "should detect unused preload post => comments" do
|
36
36
|
Post.includes(:comments).map(&:name)
|
37
37
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
38
|
-
Bullet::Detector::Association.
|
38
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Post, :comments)
|
39
39
|
|
40
|
-
Bullet::Detector::Association.
|
40
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
41
41
|
end
|
42
42
|
|
43
43
|
it "should not detect unused preload post => comments" do
|
44
44
|
Post.all.map(&:name)
|
45
45
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
46
|
-
Bullet::Detector::Association.
|
46
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
47
47
|
|
48
|
-
Bullet::Detector::Association.
|
48
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
49
49
|
end
|
50
50
|
|
51
51
|
it "should detect non preload comment => post with inverse_of" do
|
@@ -56,9 +56,9 @@ if active_record3?
|
|
56
56
|
end
|
57
57
|
end
|
58
58
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
59
|
-
Bullet::Detector::Association.
|
59
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
60
60
|
|
61
|
-
Bullet::Detector::Association.
|
61
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
62
62
|
end
|
63
63
|
end
|
64
64
|
|
@@ -70,10 +70,10 @@ if active_record3?
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
73
|
-
Bullet::Detector::Association.
|
73
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
74
74
|
|
75
|
-
Bullet::Detector::Association.
|
76
|
-
Bullet::Detector::Association.
|
75
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Category, :posts)
|
76
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Post, :comments)
|
77
77
|
end
|
78
78
|
|
79
79
|
it "should detect preload category => posts, but no post => comments" do
|
@@ -83,10 +83,10 @@ if active_record3?
|
|
83
83
|
end
|
84
84
|
end
|
85
85
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
86
|
-
Bullet::Detector::Association.
|
86
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
87
87
|
|
88
|
-
Bullet::Detector::Association.
|
89
|
-
Bullet::Detector::Association.
|
88
|
+
expect(Bullet::Detector::Association).not_to be_detecting_unpreloaded_association_for(Category, :posts)
|
89
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Post, :comments)
|
90
90
|
end
|
91
91
|
|
92
92
|
it "should detect preload with category => posts => comments" do
|
@@ -96,17 +96,17 @@ if active_record3?
|
|
96
96
|
end
|
97
97
|
end
|
98
98
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
99
|
-
Bullet::Detector::Association.
|
99
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
100
100
|
|
101
|
-
Bullet::Detector::Association.
|
101
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
102
102
|
end
|
103
103
|
|
104
104
|
it "should detect unused preload with category => posts => comments" do
|
105
105
|
Category.includes({:posts => :comments}).map(&:name)
|
106
106
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
107
|
-
Bullet::Detector::Association.
|
107
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Post, :comments)
|
108
108
|
|
109
|
-
Bullet::Detector::Association.
|
109
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
110
110
|
end
|
111
111
|
|
112
112
|
it "should detect unused preload with post => commnets, no category => posts" do
|
@@ -114,9 +114,9 @@ if active_record3?
|
|
114
114
|
category.posts.map(&:name)
|
115
115
|
end
|
116
116
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
117
|
-
Bullet::Detector::Association.
|
117
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Post, :comments)
|
118
118
|
|
119
|
-
Bullet::Detector::Association.
|
119
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
120
120
|
end
|
121
121
|
end
|
122
122
|
|
@@ -127,10 +127,10 @@ if active_record3?
|
|
127
127
|
category.entries.map(&:name)
|
128
128
|
end
|
129
129
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
130
|
-
Bullet::Detector::Association.
|
130
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
131
131
|
|
132
|
-
Bullet::Detector::Association.
|
133
|
-
Bullet::Detector::Association.
|
132
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Category, :posts)
|
133
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Category, :entries)
|
134
134
|
end
|
135
135
|
|
136
136
|
it "should detect preload with category => posts, but not with category => entries" do
|
@@ -139,10 +139,10 @@ if active_record3?
|
|
139
139
|
category.entries.map(&:name)
|
140
140
|
end
|
141
141
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
142
|
-
Bullet::Detector::Association.
|
142
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
143
143
|
|
144
|
-
Bullet::Detector::Association.
|
145
|
-
Bullet::Detector::Association.
|
144
|
+
expect(Bullet::Detector::Association).not_to be_detecting_unpreloaded_association_for(Category, :posts)
|
145
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Category, :entries)
|
146
146
|
end
|
147
147
|
|
148
148
|
it "should detect preload with category => [posts, entries]" do
|
@@ -151,18 +151,18 @@ if active_record3?
|
|
151
151
|
category.entries.map(&:name)
|
152
152
|
end
|
153
153
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
154
|
-
Bullet::Detector::Association.
|
154
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
155
155
|
|
156
|
-
Bullet::Detector::Association.
|
156
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
157
157
|
end
|
158
158
|
|
159
159
|
it "should detect unused preload with category => [posts, entries]" do
|
160
160
|
Category.includes([:posts, :entries]).map(&:name)
|
161
161
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
162
|
-
Bullet::Detector::Association.
|
163
|
-
Bullet::Detector::Association.
|
162
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Category, :posts)
|
163
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Category, :entries)
|
164
164
|
|
165
|
-
Bullet::Detector::Association.
|
165
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
166
166
|
end
|
167
167
|
|
168
168
|
it "should detect unused preload with category => entries, but not with category => posts" do
|
@@ -170,10 +170,10 @@ if active_record3?
|
|
170
170
|
category.posts.map(&:name)
|
171
171
|
end
|
172
172
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
173
|
-
Bullet::Detector::Association.
|
174
|
-
Bullet::Detector::Association.
|
173
|
+
expect(Bullet::Detector::Association).not_to be_unused_preload_associations_for(Category, :posts)
|
174
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Category, :entries)
|
175
175
|
|
176
|
-
Bullet::Detector::Association.
|
176
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
177
177
|
end
|
178
178
|
end
|
179
179
|
|
@@ -183,17 +183,17 @@ if active_record3?
|
|
183
183
|
post.comments.first.name
|
184
184
|
end
|
185
185
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
186
|
-
Bullet::Detector::Association.
|
186
|
+
expect(Bullet::Detector::Association).not_to be_unused_preload_associations_for(Post, :comments)
|
187
187
|
|
188
|
-
Bullet::Detector::Association.
|
188
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
189
189
|
end
|
190
190
|
|
191
191
|
it "should detect preload with post => commnets" do
|
192
192
|
Post.first.comments.map(&:name)
|
193
193
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
194
|
-
Bullet::Detector::Association.
|
194
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
195
195
|
|
196
|
-
Bullet::Detector::Association.
|
196
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
197
197
|
end
|
198
198
|
end
|
199
199
|
|
@@ -205,8 +205,8 @@ if active_record3?
|
|
205
205
|
post.writer.name
|
206
206
|
end
|
207
207
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
208
|
-
Bullet::Detector::Association.
|
209
|
-
Bullet::Detector::Association.
|
208
|
+
expect(Bullet::Detector::Association).not_to be_unused_preload_associations_for(Category, :posts)
|
209
|
+
expect(Bullet::Detector::Association).not_to be_unused_preload_associations_for(Post, :writer)
|
210
210
|
end
|
211
211
|
end
|
212
212
|
|
@@ -216,17 +216,17 @@ if active_record3?
|
|
216
216
|
post.category.name
|
217
217
|
end
|
218
218
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
219
|
-
Bullet::Detector::Association.
|
219
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
220
220
|
|
221
|
-
Bullet::Detector::Association.
|
221
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
222
222
|
end
|
223
223
|
|
224
224
|
it "should not be unused preload post => category" do
|
225
225
|
Post.in_category_name('first').all.map(&:name)
|
226
226
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
227
|
-
Bullet::Detector::Association.
|
227
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
228
228
|
|
229
|
-
Bullet::Detector::Association.
|
229
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
230
230
|
end
|
231
231
|
end
|
232
232
|
|
@@ -236,17 +236,17 @@ if active_record3?
|
|
236
236
|
post.comments.map(&:name)
|
237
237
|
end
|
238
238
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
239
|
-
Bullet::Detector::Association.
|
239
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
240
240
|
|
241
|
-
Bullet::Detector::Association.
|
241
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
242
242
|
end
|
243
243
|
|
244
244
|
it "should detect unused preload with scope" do
|
245
245
|
Post.preload_comments.map(&:name)
|
246
246
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
247
|
-
Bullet::Detector::Association.
|
247
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Post, :comments)
|
248
248
|
|
249
|
-
Bullet::Detector::Association.
|
249
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
250
250
|
end
|
251
251
|
end
|
252
252
|
end
|
@@ -267,17 +267,17 @@ if active_record3?
|
|
267
267
|
comment.post.name
|
268
268
|
end
|
269
269
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
270
|
-
Bullet::Detector::Association.
|
270
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
271
271
|
|
272
|
-
Bullet::Detector::Association.
|
272
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Comment, :post)
|
273
273
|
end
|
274
274
|
|
275
275
|
it "should detect preload with one comment => post" do
|
276
276
|
Comment.first.post.name
|
277
277
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
278
|
-
Bullet::Detector::Association.
|
278
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
279
279
|
|
280
|
-
Bullet::Detector::Association.
|
280
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
281
281
|
end
|
282
282
|
|
283
283
|
it "should dtect preload with comment => post" do
|
@@ -285,25 +285,25 @@ if active_record3?
|
|
285
285
|
comment.post.name
|
286
286
|
end
|
287
287
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
288
|
-
Bullet::Detector::Association.
|
288
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
289
289
|
|
290
|
-
Bullet::Detector::Association.
|
290
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
291
291
|
end
|
292
292
|
|
293
293
|
it "should not detect preload with comment => post" do
|
294
294
|
Comment.all.map(&:name)
|
295
295
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
296
|
-
Bullet::Detector::Association.
|
296
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
297
297
|
|
298
|
-
Bullet::Detector::Association.
|
298
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
299
299
|
end
|
300
300
|
|
301
301
|
it "should detect unused preload with comments => post" do
|
302
302
|
Comment.includes(:post).map(&:name)
|
303
303
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
304
|
-
Bullet::Detector::Association.
|
304
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Comment, :post)
|
305
305
|
|
306
|
-
Bullet::Detector::Association.
|
306
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
307
307
|
end
|
308
308
|
end
|
309
309
|
|
@@ -313,9 +313,9 @@ if active_record3?
|
|
313
313
|
comment.post.category.name
|
314
314
|
end
|
315
315
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
316
|
-
Bullet::Detector::Association.
|
316
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
317
317
|
|
318
|
-
Bullet::Detector::Association.
|
318
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Comment, :post)
|
319
319
|
end
|
320
320
|
|
321
321
|
it "should detect non preload association with post => category" do
|
@@ -323,9 +323,9 @@ if active_record3?
|
|
323
323
|
comment.post.category.name
|
324
324
|
end
|
325
325
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
326
|
-
Bullet::Detector::Association.
|
326
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
327
327
|
|
328
|
-
Bullet::Detector::Association.
|
328
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Post, :category)
|
329
329
|
end
|
330
330
|
|
331
331
|
it "should not detect unpreload association" do
|
@@ -333,9 +333,9 @@ if active_record3?
|
|
333
333
|
comment.post.category.name
|
334
334
|
end
|
335
335
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
336
|
-
Bullet::Detector::Association.
|
336
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
337
337
|
|
338
|
-
Bullet::Detector::Association.
|
338
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
339
339
|
end
|
340
340
|
end
|
341
341
|
|
@@ -347,9 +347,9 @@ if active_record3?
|
|
347
347
|
comment.post.writer.name
|
348
348
|
end
|
349
349
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
350
|
-
Bullet::Detector::Association.
|
350
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
351
351
|
|
352
|
-
Bullet::Detector::Association.
|
352
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Post, :writer)
|
353
353
|
end
|
354
354
|
|
355
355
|
# this happens because the comment doesn't break down the hash into keys
|
@@ -359,9 +359,9 @@ if active_record3?
|
|
359
359
|
comment.post.writer.name
|
360
360
|
end
|
361
361
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
362
|
-
Bullet::Detector::Association.
|
362
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Comment, :author)
|
363
363
|
|
364
|
-
Bullet::Detector::Association.
|
364
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
365
365
|
end
|
366
366
|
|
367
367
|
# To flyerhzm: This does not detect that newspaper is unpreloaded. The association is
|
@@ -373,17 +373,17 @@ if active_record3?
|
|
373
373
|
#Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
374
374
|
#Bullet::Detector::Association.should_not be_has_unused_preload_associations
|
375
375
|
|
376
|
-
Bullet::Detector::Association.
|
376
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Writer, :newspaper)
|
377
377
|
end
|
378
378
|
|
379
379
|
# when we attempt to access category, there is an infinite overflow because load_target is hijacked leading to
|
380
380
|
# a repeating loop of calls in this test
|
381
381
|
it "should not raise a stack error from posts to category" do
|
382
|
-
|
382
|
+
expect {
|
383
383
|
Comment.includes({:post => :category}).each do |com|
|
384
384
|
com.post.category
|
385
385
|
end
|
386
|
-
}.
|
386
|
+
}.not_to raise_error
|
387
387
|
end
|
388
388
|
end
|
389
389
|
end
|
@@ -404,9 +404,9 @@ if active_record3?
|
|
404
404
|
student.teachers.map(&:name)
|
405
405
|
end
|
406
406
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
407
|
-
Bullet::Detector::Association.
|
407
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
408
408
|
|
409
|
-
Bullet::Detector::Association.
|
409
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Student, :teachers)
|
410
410
|
end
|
411
411
|
|
412
412
|
it "should detect preload associations" do
|
@@ -414,25 +414,25 @@ if active_record3?
|
|
414
414
|
student.teachers.map(&:name)
|
415
415
|
end
|
416
416
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
417
|
-
Bullet::Detector::Association.
|
417
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
418
418
|
|
419
|
-
Bullet::Detector::Association.
|
419
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
420
420
|
end
|
421
421
|
|
422
422
|
it "should detect unused preload associations" do
|
423
423
|
Student.includes(:teachers).map(&:name)
|
424
424
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
425
|
-
Bullet::Detector::Association.
|
425
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Student, :teachers)
|
426
426
|
|
427
|
-
Bullet::Detector::Association.
|
427
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
428
428
|
end
|
429
429
|
|
430
430
|
it "should detect no unused preload associations" do
|
431
431
|
Student.all.map(&:name)
|
432
432
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
433
|
-
Bullet::Detector::Association.
|
433
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
434
434
|
|
435
|
-
Bullet::Detector::Association.
|
435
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
436
436
|
end
|
437
437
|
end
|
438
438
|
end
|
@@ -453,9 +453,9 @@ if active_record3?
|
|
453
453
|
firm.clients.map(&:name)
|
454
454
|
end
|
455
455
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
456
|
-
Bullet::Detector::Association.
|
456
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
457
457
|
|
458
|
-
Bullet::Detector::Association.
|
458
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Firm, :clients)
|
459
459
|
end
|
460
460
|
|
461
461
|
it "should detect preload associations" do
|
@@ -463,25 +463,25 @@ if active_record3?
|
|
463
463
|
firm.clients.map(&:name)
|
464
464
|
end
|
465
465
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
466
|
-
Bullet::Detector::Association.
|
466
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
467
467
|
|
468
|
-
Bullet::Detector::Association.
|
468
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
469
469
|
end
|
470
470
|
|
471
471
|
it "should not detect preload associations" do
|
472
472
|
Firm.all.map(&:name)
|
473
473
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
474
|
-
Bullet::Detector::Association.
|
474
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
475
475
|
|
476
|
-
Bullet::Detector::Association.
|
476
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
477
477
|
end
|
478
478
|
|
479
479
|
it "should detect unused preload associations" do
|
480
480
|
Firm.includes(:clients).map(&:name)
|
481
481
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
482
|
-
Bullet::Detector::Association.
|
482
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Firm, :clients)
|
483
483
|
|
484
|
-
Bullet::Detector::Association.
|
484
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
485
485
|
end
|
486
486
|
end
|
487
487
|
end
|
@@ -502,9 +502,9 @@ if active_record3?
|
|
502
502
|
company.address.name
|
503
503
|
end
|
504
504
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
505
|
-
Bullet::Detector::Association.
|
505
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
506
506
|
|
507
|
-
Bullet::Detector::Association.
|
507
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Company, :address)
|
508
508
|
end
|
509
509
|
|
510
510
|
it "should detect preload association" do
|
@@ -512,25 +512,25 @@ if active_record3?
|
|
512
512
|
company.address.name
|
513
513
|
end
|
514
514
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
515
|
-
Bullet::Detector::Association.
|
515
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
516
516
|
|
517
|
-
Bullet::Detector::Association.
|
517
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
518
518
|
end
|
519
519
|
|
520
520
|
it "should not detect preload association" do
|
521
521
|
Company.all.map(&:name)
|
522
522
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
523
|
-
Bullet::Detector::Association.
|
523
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
524
524
|
|
525
|
-
Bullet::Detector::Association.
|
525
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
526
526
|
end
|
527
527
|
|
528
528
|
it "should detect unused preload association" do
|
529
529
|
Company.includes(:address).map(&:name)
|
530
530
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
531
|
-
Bullet::Detector::Association.
|
531
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Company, :address)
|
532
532
|
|
533
|
-
Bullet::Detector::Association.
|
533
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
534
534
|
end
|
535
535
|
end
|
536
536
|
end
|
@@ -549,9 +549,9 @@ if active_record3?
|
|
549
549
|
Post.all
|
550
550
|
Post.first.comments.map(&:name)
|
551
551
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
552
|
-
Bullet::Detector::Association.
|
552
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
553
553
|
|
554
|
-
Bullet::Detector::Association.
|
554
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
555
555
|
end
|
556
556
|
end
|
557
557
|
|
@@ -571,9 +571,9 @@ if active_record3?
|
|
571
571
|
page.author.name
|
572
572
|
end
|
573
573
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
574
|
-
Bullet::Detector::Association.
|
574
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
575
575
|
|
576
|
-
Bullet::Detector::Association.
|
576
|
+
expect(Bullet::Detector::Association).to be_detecting_unpreloaded_association_for(Page, :author)
|
577
577
|
end
|
578
578
|
|
579
579
|
it "should detect preload associations" do
|
@@ -581,25 +581,25 @@ if active_record3?
|
|
581
581
|
page.author.name
|
582
582
|
end
|
583
583
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
584
|
-
Bullet::Detector::Association.
|
584
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
585
585
|
|
586
|
-
Bullet::Detector::Association.
|
586
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
587
587
|
end
|
588
588
|
|
589
589
|
it "should detect unused preload associations" do
|
590
590
|
Page.includes(:author).map(&:name)
|
591
591
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
592
|
-
Bullet::Detector::Association.
|
592
|
+
expect(Bullet::Detector::Association).to be_unused_preload_associations_for(Page, :author)
|
593
593
|
|
594
|
-
Bullet::Detector::Association.
|
594
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
595
595
|
end
|
596
596
|
|
597
597
|
it "should not detect preload associations" do
|
598
598
|
Page.all.map(&:name)
|
599
599
|
Bullet::Detector::UnusedEagerLoading.check_unused_preload_associations
|
600
|
-
Bullet::Detector::Association.
|
600
|
+
expect(Bullet::Detector::Association).not_to be_has_unused_preload_associations
|
601
601
|
|
602
|
-
Bullet::Detector::Association.
|
602
|
+
expect(Bullet::Detector::Association).to be_completely_preloading_associations
|
603
603
|
end
|
604
604
|
end
|
605
605
|
|