solidus_volume_pricing 0.1.0 → 0.1.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: 5a603c2351c842b0e767b8bf7cb8a27043aa28e0
4
- data.tar.gz: 88d8cef36d7438bbf0d92d2784c57b87d4da8e8a
3
+ metadata.gz: cc2065e7c371b9b0fdb810869dfe6110453d71cc
4
+ data.tar.gz: d04e9190e63cafe768e97125211af4feaed38c82
5
5
  SHA512:
6
- metadata.gz: ba402358ed234e73ebc686aec2a111fb173643911a9e1b7b32949ef20dc8ea1f8b95972214e622d5df0d0ae4a727506786c4cd5d222e713df1bba26a5503c309
7
- data.tar.gz: 8e636f41d105ffe1c043b9c19cec4c829f664c4626758e2e073440b76f31fc85e719fb105e9ff736ab70670e711b470dc9952d838ecb88c2ce8e846db6c79566
6
+ metadata.gz: bf2f072e4dcd0b14bdb04534d4008466a43fd53d0371653dfe2e23230a2d5a1117e797d4af456ffc78f0243f9f99be934cf7c8355d2b09563fcbe9f0b45ba824
7
+ data.tar.gz: 929c3db05f9bde8f69bd1f1c106d068656d3900461a253b692cb045d990d302b072c3c7b93573fc9498fc4f82d64e8c97a5595c881a9f526e89467306c2f8fe6
@@ -0,0 +1,3 @@
1
+ /*
2
+ *= require spree/backend
3
+ */
@@ -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 = 1
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
@@ -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.1.0
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-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
@@ -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