solidus_volume_pricing 0.2.0 → 0.2.1
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/app/controllers/spree/admin/volume_price_models_controller.rb +0 -5
- data/app/views/spree/admin/variants/volume_prices.html.erb +1 -1
- data/app/views/spree/admin/volume_prices/_edit_fields.html.erb +1 -1
- data/app/views/spree/admin/volume_prices/_volume_price_fields.html.erb +2 -2
- data/lib/solidus_volume_pricing/version.rb +1 -1
- data/spec/features/manage_volume_price_models_feature_spec.rb +26 -0
- data/spec/features/manage_volume_prices_feature_spec.rb +32 -0
- data/spec/spec_helper.rb +4 -1
- data/spec/support/database_cleaner.rb +8 -11
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fbe1e772f2746fe3ef1be321bebf2677d6adb6f1
|
4
|
+
data.tar.gz: '09057b1c10577aef143f72ce88e4f29e93424ee8'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d90d442c9da53d8229c6f8cc8cf06a0a047ab212084eb2fe76a36fbb3fb1ba8e585855bcfc467e0f15737af12340687114c51abde3c6f66ebb09b84645372e9c
|
7
|
+
data.tar.gz: 4eb845de35f1c6edf05f5c9e8c267f3b99ba2a1e01b6118126afb20673a0d4e469cd9cf5d738b8c03ce0c7804f9a291fb215f28392d5653eee0c7d4de8cbdc18
|
@@ -3,11 +3,6 @@ module Spree
|
|
3
3
|
class VolumePriceModelsController < ResourceController
|
4
4
|
|
5
5
|
before_action :load_volume_prices, only: [:new, :edit]
|
6
|
-
respond_to :json, only: [:get_children]
|
7
|
-
|
8
|
-
def get_children
|
9
|
-
@volume_prices = VolumePrice.find(params[:parent_id]).children
|
10
|
-
end
|
11
6
|
|
12
7
|
private
|
13
8
|
|
@@ -24,7 +24,7 @@
|
|
24
24
|
</thead>
|
25
25
|
<tbody id="volume_prices">
|
26
26
|
<%= f.fields_for :volume_prices do |vp_form| %>
|
27
|
-
|
27
|
+
<%= render partial: 'spree/admin/volume_prices/volume_price_fields', locals: { f: vp_form } %>
|
28
28
|
<% end %>
|
29
29
|
</tbody>
|
30
30
|
<tbody id="volume_price_models">
|
@@ -9,7 +9,7 @@
|
|
9
9
|
["#{Spree.t(:total_price)}", 'price'],
|
10
10
|
["#{Spree.t(:percent_discount)}", 'percent'],
|
11
11
|
["#{Spree.t(:price_discount)}", 'dollar']
|
12
|
-
], {
|
12
|
+
], { include_blank: true }, class: 'select2' %>
|
13
13
|
</td>
|
14
14
|
<td>
|
15
15
|
<%= error_message_on(f.object, :range) %>
|
@@ -28,6 +28,6 @@
|
|
28
28
|
<%= f.collection_select(:role_id, Spree::Role.all, :id, :name, { include_blank: Spree.t('match_choices.none') }, { class: 'select2' }) %>
|
29
29
|
</td>
|
30
30
|
<td class="actions">
|
31
|
-
<%=
|
31
|
+
<%= link_to_remove_fields Spree.t(:remove), f, no_text: true %>
|
32
32
|
</td>
|
33
33
|
</tr>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.feature 'Managing volume price models' do
|
4
|
+
stub_authorization!
|
5
|
+
|
6
|
+
scenario 'a admin can create and remove volume price models', :js do
|
7
|
+
visit spree.admin_volume_price_models_path
|
8
|
+
expect(page).to have_content('Volume Price Models')
|
9
|
+
|
10
|
+
click_on 'New Volume Price Model'
|
11
|
+
fill_in 'Name', with: 'Discount'
|
12
|
+
within '#volume_prices' do
|
13
|
+
fill_in 'volume_price_model_volume_prices_attributes_0_name', with: '5 pieces discount'
|
14
|
+
select 'Total price', from: 'volume_price_model_volume_prices_attributes_0_discount_type'
|
15
|
+
fill_in 'volume_price_model_volume_prices_attributes_0_range', with: '1..5'
|
16
|
+
fill_in 'volume_price_model_volume_prices_attributes_0_amount', with: '1'
|
17
|
+
end
|
18
|
+
click_on 'Create'
|
19
|
+
|
20
|
+
within 'tr.volume_price.fields' do
|
21
|
+
expect(page).to have_field('volume_price_model_volume_prices_attributes_0_name', with: '5 pieces discount')
|
22
|
+
page.find('a[data-action="remove"]').click
|
23
|
+
expect(page).to_not have_field('volume_price_model_volume_prices_attributes_0_name', with: '5 pieces discount')
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.feature 'Managing volume prices' do
|
4
|
+
stub_authorization!
|
5
|
+
|
6
|
+
let(:variant) { create(:variant) }
|
7
|
+
|
8
|
+
scenario 'a admin can create and remove volume prices', :js do
|
9
|
+
visit spree.edit_admin_product_path(variant.product)
|
10
|
+
click_on 'Volume Pricing'
|
11
|
+
expect(page).to have_content('Volume Prices')
|
12
|
+
|
13
|
+
fill_in 'variant_volume_prices_attributes_0_name', with: '5 pieces discount'
|
14
|
+
select 'Total price', from: 'variant_volume_prices_attributes_0_discount_type'
|
15
|
+
fill_in 'variant_volume_prices_attributes_0_range', with: '1..5'
|
16
|
+
fill_in 'variant_volume_prices_attributes_0_amount', with: '1'
|
17
|
+
click_on 'Update'
|
18
|
+
|
19
|
+
within 'tr.volume_price.fields' do
|
20
|
+
expect(page).to have_field('variant_volume_prices_attributes_0_name', with: '5 pieces discount')
|
21
|
+
page.find('a[data-action="remove"]').click
|
22
|
+
expect(page).to_not have_field('variant_volume_prices_attributes_0_name', with: '5 pieces discount')
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
scenario 'a admin editing a variant has a new volume price already built for her' do
|
27
|
+
visit spree.edit_admin_product_variant_path(product_id: variant.product, id: variant)
|
28
|
+
within '#volume_prices' do
|
29
|
+
expect(page).to have_field('variant_volume_prices_attributes_0_name')
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -2,23 +2,20 @@ require 'database_cleaner'
|
|
2
2
|
|
3
3
|
RSpec.configure do |config|
|
4
4
|
|
5
|
-
config.before
|
5
|
+
config.before :suite do
|
6
6
|
DatabaseCleaner.clean_with :truncation
|
7
7
|
end
|
8
8
|
|
9
|
-
config.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
end
|
16
|
-
|
17
|
-
config.before do
|
9
|
+
config.prepend_before(:each) do
|
10
|
+
if RSpec.current_example.metadata[:js]
|
11
|
+
DatabaseCleaner.strategy = :truncation
|
12
|
+
else
|
13
|
+
DatabaseCleaner.strategy = :transaction
|
14
|
+
end
|
18
15
|
DatabaseCleaner.start
|
19
16
|
end
|
20
17
|
|
21
|
-
config.
|
18
|
+
config.append_after(:each) do
|
22
19
|
DatabaseCleaner.clean
|
23
20
|
end
|
24
21
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: solidus_volume_pricing
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sean Schofield
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: solidus_core
|
@@ -281,6 +281,8 @@ files:
|
|
281
281
|
- solidus_volume_pricing.gemspec
|
282
282
|
- spec/controllers/spree/admin/variants_controller_spec.rb
|
283
283
|
- spec/factories/volume_price_factory.rb
|
284
|
+
- spec/features/manage_volume_price_models_feature_spec.rb
|
285
|
+
- spec/features/manage_volume_prices_feature_spec.rb
|
284
286
|
- spec/helpers/base_helper_spec.rb
|
285
287
|
- spec/models/spree/line_item_spec.rb
|
286
288
|
- spec/models/spree/order_spec.rb
|
@@ -319,6 +321,8 @@ summary: Allow prices to be configured in quantity ranges for each variant
|
|
319
321
|
test_files:
|
320
322
|
- spec/controllers/spree/admin/variants_controller_spec.rb
|
321
323
|
- spec/factories/volume_price_factory.rb
|
324
|
+
- spec/features/manage_volume_price_models_feature_spec.rb
|
325
|
+
- spec/features/manage_volume_prices_feature_spec.rb
|
322
326
|
- spec/helpers/base_helper_spec.rb
|
323
327
|
- spec/models/spree/line_item_spec.rb
|
324
328
|
- spec/models/spree/order_spec.rb
|