solidus_volume_pricing 0.1.0 → 0.1.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/assets/stylesheets/spree/backend/solidus_volume_pricing.css +3 -0
- 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/support/database_cleaner.rb +8 -11
- metadata +7 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cc2065e7c371b9b0fdb810869dfe6110453d71cc
|
4
|
+
data.tar.gz: d04e9190e63cafe768e97125211af4feaed38c82
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bf2f072e4dcd0b14bdb04534d4008466a43fd53d0371653dfe2e23230a2d5a1117e797d4af456ffc78f0243f9f99be934cf7c8355d2b09563fcbe9f0b45ba824
|
7
|
+
data.tar.gz: 929c3db05f9bde8f69bd1f1c106d068656d3900461a253b692cb045d990d302b072c3c7b93573fc9498fc4f82d64e8c97a5595c881a9f526e89467306c2f8fe6
|
@@ -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
|
@@ -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.1.
|
4
|
+
version: 0.1.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
|
@@ -244,6 +244,7 @@ files:
|
|
244
244
|
- README.md
|
245
245
|
- Rakefile
|
246
246
|
- app/assets/javascripts/spree/backend/solidus_volume_pricing.js
|
247
|
+
- app/assets/stylesheets/spree/backend/solidus_volume_pricing.css
|
247
248
|
- app/controllers/spree/admin/variants_controller_decorator.rb
|
248
249
|
- app/controllers/spree/admin/volume_price_models_controller.rb
|
249
250
|
- app/controllers/spree/admin/volume_prices_controller.rb
|
@@ -287,6 +288,8 @@ files:
|
|
287
288
|
- solidus_volume_pricing.gemspec
|
288
289
|
- spec/controllers/spree/admin/variants_controller_spec.rb
|
289
290
|
- spec/factories/volume_price_factory.rb
|
291
|
+
- spec/features/manage_volume_price_models_feature_spec.rb
|
292
|
+
- spec/features/manage_volume_prices_feature_spec.rb
|
290
293
|
- spec/helpers/base_helper_spec.rb
|
291
294
|
- spec/models/spree/line_item_spec.rb
|
292
295
|
- spec/models/spree/order_spec.rb
|
@@ -325,6 +328,8 @@ summary: Allow prices to be configured in quantity ranges for each variant
|
|
325
328
|
test_files:
|
326
329
|
- spec/controllers/spree/admin/variants_controller_spec.rb
|
327
330
|
- spec/factories/volume_price_factory.rb
|
331
|
+
- spec/features/manage_volume_price_models_feature_spec.rb
|
332
|
+
- spec/features/manage_volume_prices_feature_spec.rb
|
328
333
|
- spec/helpers/base_helper_spec.rb
|
329
334
|
- spec/models/spree/line_item_spec.rb
|
330
335
|
- spec/models/spree/order_spec.rb
|