solidus_reviews 1.2.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (42) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +8 -318
  3. data/.rubocop_todo.yml +221 -0
  4. data/CHANGELOG.md +100 -0
  5. data/Gemfile +11 -10
  6. data/README.md +29 -44
  7. data/app/controllers/spree/feedback_reviews_controller.rb +2 -8
  8. data/app/controllers/spree/reviews_controller.rb +1 -1
  9. data/app/decorators/models/solidus_reviews/spree/product_decorator.rb +6 -5
  10. data/app/helpers/spree/reviews_helper.rb +5 -5
  11. data/app/models/spree/feedback_review.rb +1 -1
  12. data/app/models/spree/review.rb +9 -8
  13. data/app/models/spree/reviews_ability.rb +2 -2
  14. data/app/views/spree/api/reviews/_feedback_review.json.jbuilder +1 -1
  15. data/app/views/spree/api/reviews/_review.json.jbuilder +1 -1
  16. data/db/migrate/20120123141326_recalculate_ratings.rb +1 -2
  17. data/db/migrate/20190613165528_add_verified_purchaser_to_reviews.rb +2 -0
  18. data/lib/controllers/spree/api/reviews_controller.rb +16 -14
  19. data/lib/generators/solidus_reviews/install/install_generator.rb +1 -1
  20. data/lib/solidus_reviews.rb +4 -2
  21. data/lib/{spree_reviews → solidus_reviews}/engine.rb +3 -3
  22. data/lib/solidus_reviews/version.rb +5 -0
  23. data/solidus_reviews.gemspec +14 -23
  24. data/spec/controllers/spree/admin/feedback_reviews_controller_spec.rb +1 -1
  25. data/spec/controllers/spree/admin/review_settings_controller_spec.rb +3 -4
  26. data/spec/controllers/spree/admin/reviews_controller_spec.rb +3 -3
  27. data/spec/controllers/spree/api/reviews_controller_spec.rb +27 -25
  28. data/spec/controllers/spree/feedback_reviews_controller_spec.rb +7 -7
  29. data/spec/controllers/spree/products_controller_spec.rb +1 -1
  30. data/spec/controllers/spree/reviews_controller_spec.rb +6 -7
  31. data/spec/features/admin_spec.rb +6 -6
  32. data/spec/features/reviews_spec.rb +32 -31
  33. data/spec/models/feedback_review_spec.rb +13 -13
  34. data/spec/models/product_spec.rb +13 -10
  35. data/spec/models/review_spec.rb +36 -40
  36. data/spec/models/reviews_ability_spec.rb +14 -14
  37. data/spec/models/reviews_configuration_spec.rb +9 -10
  38. data/spec/spec_helper.rb +4 -19
  39. data/spec/support/config.rb +7 -0
  40. data/spec/support/factories.rb +3 -0
  41. metadata +18 -180
  42. data/CONTRIBUTING.md +0 -28
@@ -2,90 +2,91 @@
2
2
 
3
3
  require 'spec_helper'
4
4
 
5
- feature 'Reviews', js: true do
6
- given!(:someone) { create(:user, email: 'ryan@spree.com') }
7
- given!(:review) { create(:review, :approved, user: someone) }
8
- given!(:unapproved_review) { create(:review, product: review.product) }
5
+ describe 'Reviews', js: true do
6
+ let!(:someone) { create(:user, email: 'ryan@spree.com') }
7
+ let!(:review) { create(:review, :approved, user: someone) }
8
+ let!(:unapproved_review) { create(:review, product: review.product) }
9
9
 
10
- background do
11
- Spree::Reviews::Config.include_unapproved_reviews = false
10
+ before do
11
+ stub_spree_preferences(Spree::Reviews::Config, include_unapproved_reviews: false)
12
12
  end
13
13
 
14
14
  context 'product with no review' do
15
- given!(:product_no_reviews) { create(:product) }
16
- scenario 'informs that no reviews has been written yet' do
15
+ let!(:product_no_reviews) { create(:product) }
16
+
17
+ it 'informs that no reviews has been written yet' do
17
18
  visit spree.product_path(product_no_reviews)
18
19
  expect(page).to have_text I18n.t('spree.no_reviews_available')
19
20
  end
20
21
 
21
22
  # Regression test for #103
22
23
  context "shows correct number of previews" do
23
- background do
24
+ before do
24
25
  FactoryBot.create_list :review, 3, product: product_no_reviews, approved: true
25
- Spree::Reviews::Config[:preview_size] = 2
26
+ stub_spree_preferences(Spree::Reviews::Config, preview_size: 2)
26
27
  end
27
28
 
28
- scenario "displayed reviews are limited by the set preview size" do
29
+ it "displayed reviews are limited by the set preview size" do
29
30
  visit spree.product_path(product_no_reviews)
30
- expect(page.all(".review").count).to eql(2)
31
+ expect(page.all(".review").count).to be(2)
31
32
  end
32
33
  end
33
34
  end
34
35
 
35
36
  context 'when anonymous user' do
36
- background do
37
- Spree::Reviews::Config.require_login = true
37
+ before do
38
+ stub_spree_preferences(Spree::Reviews::Config, require_login: true)
38
39
  end
39
40
 
40
41
  context 'visit product with review' do
41
- background do
42
+ before do
42
43
  visit spree.product_path(review.product)
43
44
  end
44
45
 
45
- scenario 'should see review title' do
46
+ it 'sees review title' do
46
47
  expect(page).to have_text review.title
47
48
  end
48
49
 
49
- scenario 'can not create review' do
50
+ it 'can not create review' do
50
51
  expect(page).not_to have_text I18n.t('spree.write_your_own_review')
51
52
  end
52
53
  end
53
54
  end
54
55
 
55
56
  context 'when logged in user' do
56
- given!(:user) { create(:user) }
57
+ let!(:user) { create(:user) }
57
58
 
58
- background do
59
+ before do
59
60
  sign_in_as! user
60
61
  end
61
62
 
62
63
  context 'visit product with review' do
63
- background do
64
+ before do
64
65
  visit spree.product_path(review.product)
65
66
  end
66
67
 
67
- scenario 'can see review title' do
68
+ it 'can see review title' do
68
69
  expect(page).to have_text review.title
69
70
  end
70
71
 
71
72
  context 'with unapproved content allowed' do
72
- background do
73
- Spree::Reviews::Config[:include_unapproved_reviews] = true
74
- Spree::Reviews::Config[:display_unapproved_reviews] = true
73
+ before do
74
+ stub_spree_preferences(Spree::Reviews::Config, include_unapproved_reviews: true)
75
+ stub_spree_preferences(Spree::Reviews::Config, display_unapproved_reviews: true)
75
76
  visit spree.product_path(review.product)
76
77
  end
77
78
 
78
- scenario 'can see unapproved content when allowed' do
79
+ it 'can see unapproved content when allowed' do
79
80
  expect(unapproved_review.approved?).to eq(false)
80
81
  expect(page).to have_text unapproved_review.title
81
82
  end
82
83
  end
83
84
 
84
- scenario 'can see create new review button' do
85
+ it 'can see create new review button' do
85
86
  expect(page).to have_text I18n.t('spree.write_your_own_review')
86
87
  end
87
88
 
88
- scenario 'can create new review' do
89
+ it 'can create new review' do
89
90
  click_on I18n.t('spree.write_your_own_review')
90
91
 
91
92
  expect(page).to have_text I18n.t('spree.leave_us_a_review_for', name: review.product.name)
@@ -108,14 +109,14 @@ feature 'Reviews', js: true do
108
109
  end
109
110
 
110
111
  context 'visit product with review where show_identifier is false' do
111
- given!(:user) { create(:user) }
112
- given!(:review) { create(:review, :approved, :hide_identifier, review: 'review text', user: user) }
112
+ let!(:user) { create(:user) }
113
+ let!(:review) { create(:review, :approved, :hide_identifier, review: 'review text', user: user) }
113
114
 
114
- background do
115
+ before do
115
116
  visit spree.product_path(review.product)
116
117
  end
117
118
 
118
- scenario 'show anonymous review' do
119
+ it 'show anonymous review' do
119
120
  expect(page).to have_text I18n.t('spree.anonymous')
120
121
  expect(page).to have_text 'review text'
121
122
  end
@@ -13,30 +13,30 @@ describe Spree::FeedbackReview do
13
13
  end
14
14
 
15
15
  it 'does not validate with a nil review' do
16
- expect(build(:feedback_review, review: nil)).to_not be_valid
16
+ expect(build(:feedback_review, review: nil)).not_to be_valid
17
17
  end
18
18
 
19
19
  context 'rating' do
20
20
  it 'does not validate when no rating is specified' do
21
- expect(build(:feedback_review, rating: nil)).to_not be_valid
21
+ expect(build(:feedback_review, rating: nil)).not_to be_valid
22
22
  end
23
23
 
24
24
  it 'does not validate when the rating is not a number' do
25
- expect(build(:feedback_review, rating: 'not_a_number')).to_not be_valid
25
+ expect(build(:feedback_review, rating: 'not_a_number')).not_to be_valid
26
26
  end
27
27
 
28
28
  it 'does not validate when the rating is a float' do
29
- expect(build(:feedback_review, rating: 2.718)).to_not be_valid
29
+ expect(build(:feedback_review, rating: 2.718)).not_to be_valid
30
30
  end
31
31
 
32
32
  it 'does not validate when the rating is less than 1' do
33
- expect(build(:feedback_review, rating: 0)).to_not be_valid
34
- expect(build(:feedback_review, rating: -5)).to_not be_valid
33
+ expect(build(:feedback_review, rating: 0)).not_to be_valid
34
+ expect(build(:feedback_review, rating: -5)).not_to be_valid
35
35
  end
36
36
 
37
37
  it 'does not validate when the rating is greater than 5' do
38
- expect(build(:feedback_review, rating: 6)).to_not be_valid
39
- expect(build(:feedback_review, rating: 8)).to_not be_valid
38
+ expect(build(:feedback_review, rating: 6)).not_to be_valid
39
+ expect(build(:feedback_review, rating: 8)).not_to be_valid
40
40
  end
41
41
 
42
42
  (1..5).each do |i|
@@ -54,11 +54,11 @@ describe Spree::FeedbackReview do
54
54
  let!(:feedback_review_3) { create(:feedback_review, created_at: 5.days.ago) }
55
55
 
56
56
  it 'properly runs most_recent_first queries' do
57
- expect(Spree::FeedbackReview.most_recent_first.to_a).to eq([feedback_review_2, feedback_review_3, feedback_review_1])
57
+ expect(described_class.most_recent_first.to_a).to eq([feedback_review_2, feedback_review_3, feedback_review_1])
58
58
  end
59
59
 
60
60
  it 'defaults to most_recent_first queries' do
61
- expect(Spree::FeedbackReview.all.to_a).to eq([feedback_review_2, feedback_review_3, feedback_review_1])
61
+ expect(described_class.all.to_a).to eq([feedback_review_2, feedback_review_3, feedback_review_1])
62
62
  end
63
63
  end
64
64
 
@@ -71,9 +71,9 @@ describe Spree::FeedbackReview do
71
71
  let!(:fr_feedback_review_1) { create(:feedback_review, locale: 'fr', created_at: 10.days.ago) }
72
72
 
73
73
  it 'properly runs localized queries' do
74
- expect(Spree::FeedbackReview.localized('en').to_a).to eq([en_feedback_review_2, en_feedback_review_3, en_feedback_review_1])
75
- expect(Spree::FeedbackReview.localized('es').to_a).to eq([es_feedback_review_1])
76
- expect(Spree::FeedbackReview.localized('fr').to_a).to eq([fr_feedback_review_1])
74
+ expect(described_class.localized('en').to_a).to eq([en_feedback_review_2, en_feedback_review_3, en_feedback_review_1])
75
+ expect(described_class.localized('es').to_a).to eq([es_feedback_review_1])
76
+ expect(described_class.localized('fr').to_a).to eq([fr_feedback_review_1])
77
77
  end
78
78
  end
79
79
  end
@@ -7,7 +7,7 @@ describe Spree::Product do
7
7
  it { is_expected.to respond_to(:reviews) }
8
8
  it { is_expected.to respond_to(:stars) }
9
9
 
10
- context '#stars' do
10
+ describe '#stars' do
11
11
  let(:product) { build(:product) }
12
12
 
13
13
  it 'rounds' do
@@ -27,7 +27,7 @@ describe Spree::Product do
27
27
  end
28
28
  end
29
29
 
30
- context '#recalculate_rating' do
30
+ describe '#recalculate_rating' do
31
31
  let!(:product) { create(:product) }
32
32
 
33
33
  context 'when there are approved reviews' do
@@ -36,11 +36,8 @@ describe Spree::Product do
36
36
  let!(:unapproved_review_1) { create(:review, product: product, approved: false, rating: 4) }
37
37
 
38
38
  context "including unapproved reviews" do
39
- before(:all) do
40
- Spree::Reviews::Config[:include_unapproved_reviews] = true
41
- end
42
- after(:all) do
43
- Spree::Reviews::Config[:include_unapproved_reviews] = false
39
+ before do
40
+ stub_spree_preferences(Spree::Reviews::Config, include_unapproved_reviews: true)
44
41
  end
45
42
 
46
43
  it "updates the product average rating and ignores unapproved reviews" do
@@ -55,6 +52,10 @@ describe Spree::Product do
55
52
  end
56
53
 
57
54
  context "only approved reviews" do
55
+ before do
56
+ stub_spree_preferences(Spree::Reviews::Config, include_unapproved_reviews: false)
57
+ end
58
+
58
59
  it "updates the product average rating and ignores unapproved reviews" do
59
60
  product.avg_rating = 0
60
61
  product.reviews_count = 0
@@ -70,10 +71,12 @@ describe Spree::Product do
70
71
  context "without unapproved reviews" do
71
72
  let!(:unapproved_review_1) { create(:review, product: product, approved: false, rating: 4) }
72
73
 
74
+ before do
75
+ stub_spree_preferences(Spree::Reviews::Config, include_unapproved_reviews: false)
76
+ end
77
+
73
78
  it "updates the product average rating and ignores unapproved reviews" do
74
- product.avg_rating = 3
75
- product.reviews_count = 20
76
- product.save!
79
+ product.update_columns(avg_rating: 3, reviews_count: 20)
77
80
 
78
81
  product.recalculate_rating
79
82
  expect(product.avg_rating).to eq(0)
@@ -18,25 +18,25 @@ describe Spree::Review do
18
18
 
19
19
  context 'rating' do
20
20
  it 'does not validate when no rating is specified' do
21
- expect(build(:review, rating: nil)).to_not be_valid
21
+ expect(build(:review, rating: nil)).not_to be_valid
22
22
  end
23
23
 
24
24
  it 'does not validate when the rating is not a number' do
25
- expect(build(:review, rating: 'not_a_number')).to_not be_valid
25
+ expect(build(:review, rating: 'not_a_number')).not_to be_valid
26
26
  end
27
27
 
28
28
  it 'does not validate when the rating is a float' do
29
- expect(build(:review, rating: 2.718)).to_not be_valid
29
+ expect(build(:review, rating: 2.718)).not_to be_valid
30
30
  end
31
31
 
32
32
  it 'does not validate when the rating is less than 1' do
33
- expect(build(:review, rating: 0)).to_not be_valid
34
- expect(build(:review, rating: -5)).to_not be_valid
33
+ expect(build(:review, rating: 0)).not_to be_valid
34
+ expect(build(:review, rating: -5)).not_to be_valid
35
35
  end
36
36
 
37
37
  it 'does not validate when the rating is greater than 5' do
38
- expect(build(:review, rating: 6)).to_not be_valid
39
- expect(build(:review, rating: 8)).to_not be_valid
38
+ expect(build(:review, rating: 6)).not_to be_valid
39
+ expect(build(:review, rating: 8)).not_to be_valid
40
40
  end
41
41
 
42
42
  (1..5).each do |i|
@@ -47,7 +47,7 @@ describe Spree::Review do
47
47
  end
48
48
 
49
49
  context 'review body' do
50
- it 'should be valid without a body' do
50
+ it 'is valid without a body' do
51
51
  expect(build(:review, review: nil)).to be_valid
52
52
  end
53
53
  end
@@ -60,11 +60,11 @@ describe Spree::Review do
60
60
  let!(:review_3) { create(:review, created_at: 5.days.ago) }
61
61
 
62
62
  it 'properly runs most_recent_first queries' do
63
- expect(Spree::Review.most_recent_first.to_a).to eq([review_2, review_3, review_1])
63
+ expect(described_class.most_recent_first.to_a).to eq([review_2, review_3, review_1])
64
64
  end
65
65
 
66
66
  it 'defaults to most_recent_first queries' do
67
- expect(Spree::Review.all.to_a).to eq([review_2, review_3, review_1])
67
+ expect(described_class.all.to_a).to eq([review_2, review_3, review_1])
68
68
  end
69
69
  end
70
70
 
@@ -72,19 +72,14 @@ describe Spree::Review do
72
72
  let!(:review_1) { create(:review, created_at: 10.days.ago) }
73
73
  let!(:review_2) { create(:review, created_at: 2.days.ago) }
74
74
  let!(:review_3) { create(:review, created_at: 5.days.ago) }
75
- let!(:review_4) { create(:review, created_at: 1.days.ago) }
76
-
77
- before do
78
- reset_spree_preferences
79
- Spree::Reviews::Config.preference_store = Spree::Reviews::Config.default_preferences
80
- end
75
+ let!(:review_4) { create(:review, created_at: 1.day.ago) }
81
76
 
82
77
  it 'properly runs oldest_first queries' do
83
- expect(Spree::Review.oldest_first.to_a).to eq([review_1, review_3, review_2, review_4])
78
+ expect(described_class.oldest_first.to_a).to eq([review_1, review_3, review_2, review_4])
84
79
  end
85
80
 
86
81
  it 'uses oldest_first for preview' do
87
- expect(Spree::Review.preview.to_a).to eq([review_1, review_3, review_2])
82
+ expect(described_class.preview.to_a).to eq([review_1, review_3, review_2])
88
83
  end
89
84
  end
90
85
 
@@ -97,9 +92,9 @@ describe Spree::Review do
97
92
  let!(:fr_review_1) { create(:review, locale: 'fr', created_at: 10.days.ago) }
98
93
 
99
94
  it 'properly runs localized queries' do
100
- expect(Spree::Review.localized('en').to_a).to eq([en_review_2, en_review_3, en_review_1])
101
- expect(Spree::Review.localized('es').to_a).to eq([es_review_1])
102
- expect(Spree::Review.localized('fr').to_a).to eq([fr_review_1])
95
+ expect(described_class.localized('en').to_a).to eq([en_review_2, en_review_3, en_review_1])
96
+ expect(described_class.localized('es').to_a).to eq([es_review_1])
97
+ expect(described_class.localized('fr').to_a).to eq([fr_review_1])
103
98
  end
104
99
  end
105
100
 
@@ -109,26 +104,26 @@ describe Spree::Review do
109
104
  let!(:approved_review_3) { create(:review, approved: true, created_at: 5.days.ago) }
110
105
 
111
106
  let!(:unapproved_review_1) { create(:review, approved: false, created_at: 7.days.ago) }
112
- let!(:unapproved_review_2) { create(:review, approved: false, created_at: 1.days.ago) }
107
+ let!(:unapproved_review_2) { create(:review, approved: false, created_at: 1.day.ago) }
113
108
 
114
109
  it 'properly runs approved and unapproved queries' do
115
- expect(Spree::Review.approved.to_a).to eq([approved_review_2, approved_review_3, approved_review_1])
116
- expect(Spree::Review.not_approved.to_a).to eq([unapproved_review_2, unapproved_review_1])
117
-
118
- Spree::Reviews::Config[:include_unapproved_reviews] = true
119
- expect(Spree::Review.default_approval_filter.to_a).to eq([unapproved_review_2,
120
- approved_review_2,
121
- approved_review_3,
122
- unapproved_review_1,
123
- approved_review_1])
124
-
125
- Spree::Reviews::Config[:include_unapproved_reviews] = false
126
- expect(Spree::Review.default_approval_filter.to_a).to eq([approved_review_2, approved_review_3, approved_review_1])
110
+ expect(described_class.approved.to_a).to eq([approved_review_2, approved_review_3, approved_review_1])
111
+ expect(described_class.not_approved.to_a).to eq([unapproved_review_2, unapproved_review_1])
112
+
113
+ stub_spree_preferences(Spree::Reviews::Config, include_unapproved_reviews: true)
114
+ expect(described_class.default_approval_filter.to_a).to eq([unapproved_review_2,
115
+ approved_review_2,
116
+ approved_review_3,
117
+ unapproved_review_1,
118
+ approved_review_1])
119
+
120
+ stub_spree_preferences(Spree::Reviews::Config, include_unapproved_reviews: false)
121
+ expect(described_class.default_approval_filter.to_a).to eq([approved_review_2, approved_review_3, approved_review_1])
127
122
  end
128
123
  end
129
124
  end
130
125
 
131
- context '#recalculate_product_rating' do
126
+ describe '#recalculate_product_rating' do
132
127
  let(:product) { create(:product) }
133
128
  let!(:review) { create(:review, product: product) }
134
129
 
@@ -141,7 +136,7 @@ describe Spree::Review do
141
136
  end
142
137
 
143
138
  it 'if not approved' do
144
- expect(review).to_not receive(:recalculate_product_rating)
139
+ expect(review).not_to receive(:recalculate_product_rating)
145
140
  review.save!
146
141
  end
147
142
 
@@ -152,8 +147,9 @@ describe Spree::Review do
152
147
  end
153
148
  end
154
149
 
155
- context '#feedback_stars' do
150
+ describe '#feedback_stars' do
156
151
  let!(:review) { create(:review) }
152
+
157
153
  before do
158
154
  3.times do |i|
159
155
  f = Spree::FeedbackReview.new
@@ -163,12 +159,12 @@ describe Spree::Review do
163
159
  end
164
160
  end
165
161
 
166
- it 'should return the average rating from feedback reviews' do
162
+ it 'returns the average rating from feedback reviews' do
167
163
  expect(review.feedback_stars).to eq 2
168
164
  end
169
165
  end
170
166
 
171
- context '#email' do
167
+ describe '#email' do
172
168
  it 'returns email from user' do
173
169
  user = build(:user, email: 'john@smith.com')
174
170
  review = build(:review, user: user)
@@ -191,7 +187,7 @@ describe Spree::Review do
191
187
  end
192
188
  end
193
189
 
194
- context "#verify_purchaser" do
190
+ describe "#verify_purchaser" do
195
191
  let(:order) { create(:completed_order_with_totals) }
196
192
  let(:product) { order.products.first }
197
193
  let(:user) { order.user }
@@ -5,12 +5,12 @@ require 'spec_helper'
5
5
  require "cancan/matchers"
6
6
 
7
7
  describe Spree::ReviewsAbility do
8
- context '.allow_anonymous_reviews?' do
9
- it 'should depend on Spree::Reviews::Config[:require_login]' do
10
- Spree::Reviews::Config[:require_login] = false
11
- expect(Spree::ReviewsAbility.allow_anonymous_reviews?).to be true
12
- Spree::Reviews::Config[:require_login] = true
13
- expect(Spree::ReviewsAbility.allow_anonymous_reviews?).to be false
8
+ describe '.allow_anonymous_reviews?' do
9
+ it 'depends on Spree::Reviews::Config[:require_login]' do
10
+ stub_spree_preferences(Spree::Reviews::Config, require_login: false)
11
+ expect(described_class.allow_anonymous_reviews?).to be true
12
+ stub_spree_preferences(Spree::Reviews::Config, require_login: true)
13
+ expect(described_class.allow_anonymous_reviews?).to be false
14
14
  end
15
15
  end
16
16
 
@@ -20,28 +20,28 @@ describe Spree::ReviewsAbility do
20
20
 
21
21
  context 'when anonymous reviews are allowed' do
22
22
  before do
23
- Spree::Reviews::Config[:require_login] = false
23
+ stub_spree_preferences(Spree::Reviews::Config, require_login: false)
24
24
  end
25
25
 
26
26
  it 'lets anyone create a review or feedback review' do
27
27
  [user_without_email, user_with_email].each do |u|
28
- expect(Spree::ReviewsAbility.new(u)).to be_able_to(:create, Spree::Review.new)
29
- expect(Spree::ReviewsAbility.new(u)).to be_able_to(:create, Spree::FeedbackReview.new)
28
+ expect(described_class.new(u)).to be_able_to(:create, Spree::Review.new)
29
+ expect(described_class.new(u)).to be_able_to(:create, Spree::FeedbackReview.new)
30
30
  end
31
31
  end
32
32
  end
33
33
 
34
34
  context 'when anonymous reviews are not allowed' do
35
35
  before do
36
- Spree::Reviews::Config[:require_login] = true
36
+ stub_spree_preferences(Spree::Reviews::Config, require_login: true)
37
37
  end
38
38
 
39
39
  it 'only allows users with an email to create a review or feedback review' do
40
- expect(Spree::ReviewsAbility.new(user_without_email)).to_not be_able_to(:create, Spree::Review.new)
41
- expect(Spree::ReviewsAbility.new(user_without_email)).to_not be_able_to(:create, Spree::FeedbackReview.new)
40
+ expect(described_class.new(user_without_email)).not_to be_able_to(:create, Spree::Review.new)
41
+ expect(described_class.new(user_without_email)).not_to be_able_to(:create, Spree::FeedbackReview.new)
42
42
 
43
- expect(Spree::ReviewsAbility.new(user_with_email)).to be_able_to(:create, Spree::Review.new)
44
- expect(Spree::ReviewsAbility.new(user_with_email)).to be_able_to(:create, Spree::FeedbackReview.new)
43
+ expect(described_class.new(user_with_email)).to be_able_to(:create, Spree::Review.new)
44
+ expect(described_class.new(user_with_email)).to be_able_to(:create, Spree::FeedbackReview.new)
45
45
  end
46
46
  end
47
47
  end