solidus_volume_pricing 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ab65d3e0219f88f5090273cae51341342455fbd
4
- data.tar.gz: b410f7e09e809081651efa63c0815c0a386c3da9
3
+ metadata.gz: fbe1e772f2746fe3ef1be321bebf2677d6adb6f1
4
+ data.tar.gz: '09057b1c10577aef143f72ce88e4f29e93424ee8'
5
5
  SHA512:
6
- metadata.gz: eda5105921410138eb449b40605487fef91711b773b1b208349a7598bf48a662477c6ccb83baba53cd3d6853c580f5dec6204e113a0582ca2905c155f9fc0f47
7
- data.tar.gz: 0dfdc9b4cbc45a51791ef82a09453b1acfc4a9ead09d0d16e91f2033315cd97d930fdeb320e3823f6eae6e55eca60d902d1ac19a74d309f0791477a185bad3f2
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
- <%= render partial: 'spree/admin/volume_prices/volume_price_fields', locals: { f: vp_form } %>
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">
@@ -19,7 +19,7 @@
19
19
  <th><%= Spree.t(:amount) %></th>
20
20
  <th><%= Spree.t(:position) %></th>
21
21
  <th><%= Spree.t(:role) %></th>
22
- <th><%= Spree.t(:action) %></th>
22
+ <th class="actions"></th>
23
23
  </tr>
24
24
  </thead>
25
25
  <tbody id="volume_prices">
@@ -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
- ], { inlcude_blank: true }, class: 'select2' %>
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
- <%= link_to_icon_remove_fields f %>
31
+ <%= link_to_remove_fields Spree.t(:remove), f, no_text: true %>
32
32
  </td>
33
33
  </tr>
@@ -10,7 +10,7 @@ module SolidusVolumePricing
10
10
  module VERSION
11
11
  MAJOR = 0
12
12
  MINOR = 2
13
- TINY = 0
13
+ TINY = 1
14
14
  PRE = nil
15
15
 
16
16
  STRING = [MAJOR, MINOR, TINY, PRE].compact.join('.')
@@ -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
@@ -1,5 +1,8 @@
1
1
  require 'simplecov'
2
- SimpleCov.start 'rails'
2
+ SimpleCov.start 'rails' do
3
+ add_filter "/lib/generators"
4
+ add_filter "/lib/solidus_volume_pricing"
5
+ end
3
6
 
4
7
  ENV['RAILS_ENV'] ||= 'test'
5
8
 
@@ -2,23 +2,20 @@ require 'database_cleaner'
2
2
 
3
3
  RSpec.configure do |config|
4
4
 
5
- config.before(:suite) do
5
+ config.before :suite do
6
6
  DatabaseCleaner.clean_with :truncation
7
7
  end
8
8
 
9
- config.before do
10
- DatabaseCleaner.strategy = :transaction
11
- end
12
-
13
- config.before(:each, :js) do
14
- DatabaseCleaner.strategy = :truncation
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.after do
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.0
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-17 00:00:00.000000000 Z
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