Merge pull request #13009 from MrBowmanXD/dev

Added the :selected option with the default tax category #12989
This commit is contained in:
Konrad
2025-01-07 20:04:28 +01:00
committed by GitHub
4 changed files with 65 additions and 1 deletions

View File

@@ -11,6 +11,7 @@ module Spree
include OrderCyclesHelper
include EnterprisesHelper
helper ::Admin::ProductsHelper
helper Spree::Admin::TaxCategoriesHelper
before_action :load_data
before_action :load_producers, only: [:index, :new]

View File

@@ -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

View File

@@ -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

View File

@@ -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