Skip to content

Commit

Permalink
Merge pull request #13009 from MrBowmanXD/dev
Browse files Browse the repository at this point in the history
Added the :selected option with the default tax category #12989
  • Loading branch information
drummer83 authored Jan 7, 2025
2 parents 1147976 + 0d4904d commit 428eb46
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 1 deletion.
1 change: 1 addition & 0 deletions app/controllers/spree/admin/products_controller.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ class ProductsController < ::Admin::ResourceController
include OrderCyclesHelper
include EnterprisesHelper
helper ::Admin::ProductsHelper
helper Spree::Admin::TaxCategoriesHelper

before_action :load_data
before_action :load_producers, only: [:index, :new]
Expand Down
20 changes: 20 additions & 0 deletions app/helpers/spree/admin/tax_categories_helper.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# frozen_string_literal: true

module Spree
module Admin
module TaxCategoriesHelper
def tax_category_dropdown_options(require_tax_category)
if require_tax_category
{
include_blank: false,
selected: Spree::TaxCategory.find_by(is_default: true)&.id
}
else
{
include_blank: t(:none),
}
end
end
end
end
end
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
= f.field_container :tax_category_id do
= f.label :tax_category_id, t(:tax_category)
%br
= f.collection_select(:tax_category_id, Spree::TaxCategory.all, :id, :name, {:include_blank => Spree::Config.products_require_tax_category ? false : t(:none)}, {:class => "select2 fullwidth"})
= f.collection_select(:tax_category_id, Spree::TaxCategory.all, :id, :name, tax_category_dropdown_options(Spree::Config.products_require_tax_category), {:class => "select2 fullwidth"})
= f.error_message_on :tax_category_id
43 changes: 43 additions & 0 deletions spec/helpers/spree/admin/tax_categories_helper_spec.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# frozen_string_literal: true

require "spec_helper"

RSpec.describe Spree::Admin::TaxCategoriesHelper do
describe '#tax_category_dropdown_options' do
let!(:default_tax_category) { create(:tax_category, is_default: true) }
let!(:other_tax_category) { create(:tax_category, is_default: false) }

context 'when products require a tax category' do
it 'returns include_blank as false' do
options = helper.tax_category_dropdown_options(true)
expect(options[:include_blank]).to eq(false)
end

it 'returns the default tax category as selected' do
options = helper.tax_category_dropdown_options(true)
expect(options[:selected]).to eq(default_tax_category.id)
end

context 'when no default tax category exists' do
before { default_tax_category.update(is_default: false) }

it 'returns nil for the selected value' do
options = helper.tax_category_dropdown_options(true)
expect(options[:selected]).to be_nil
end
end
end

context 'when products do not require a tax category' do
it 'returns include_blank as the translated "none" string' do
options = helper.tax_category_dropdown_options(false)
expect(options[:include_blank]).to eq("None")
end

it 'does not include a selected tax category' do
options = helper.tax_category_dropdown_options(false)
expect(options[:selected]).to be_nil
end
end
end
end

0 comments on commit 428eb46

Please sign in to comment.