mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-24 20:36:49 +00:00
group specs into one it block, added fullname with comma reversed ransacker
This commit is contained in:
@@ -24,8 +24,9 @@ angular.module("admin.lineItems").controller 'LineItemsCtrl', ($scope, $timeout,
|
||||
"order_bill_address_firstname",
|
||||
"order_bill_address_lastname",
|
||||
"order_bill_address_full_name",
|
||||
"order_bill_address_full_name_with_comma",
|
||||
"order_bill_address_full_name_reversed",
|
||||
"order_bill_address_full_name_with_comma",
|
||||
"order_bill_address_full_name_with_comma_reversed",
|
||||
"variant_product_supplier_name",
|
||||
"order_email",
|
||||
"order_number",
|
||||
|
||||
@@ -6,8 +6,8 @@ module Spree
|
||||
|
||||
self.belongs_to_required_by_default = false
|
||||
|
||||
searchable_attributes :firstname, :lastname, :phone, :full_name, :full_name_with_comma,
|
||||
:full_name_reversed
|
||||
searchable_attributes :firstname, :lastname, :phone, :full_name, :full_name_reversed,
|
||||
:full_name_with_comma, :full_name_with_comma_reversed
|
||||
searchable_associations :country, :state
|
||||
|
||||
belongs_to :country, class_name: "Spree::Country"
|
||||
@@ -37,15 +37,21 @@ module Spree
|
||||
)
|
||||
end
|
||||
|
||||
ransacker :full_name_reversed, formatter: proc { |value| value.to_s } do |parent|
|
||||
Arel::Nodes::SqlLiteral.new(
|
||||
"CONCAT(#{parent.table_name}.lastname, ' ', #{parent.table_name}.firstname)"
|
||||
)
|
||||
end
|
||||
|
||||
ransacker :full_name_with_comma, formatter: proc { |value| value.to_s } do |parent|
|
||||
Arel::Nodes::SqlLiteral.new(
|
||||
"CONCAT(#{parent.table_name}.firstname, ', ', #{parent.table_name}.lastname)"
|
||||
)
|
||||
end
|
||||
|
||||
ransacker :full_name_reversed, formatter: proc { |value| value.to_s } do |parent|
|
||||
ransacker :full_name_with_comma_reversed, formatter: proc { |value| value.to_s } do |parent|
|
||||
Arel::Nodes::SqlLiteral.new(
|
||||
"CONCAT(#{parent.table_name}.lastname, ' ', #{parent.table_name}.firstname)"
|
||||
"CONCAT(#{parent.table_name}.lastname, ', ', #{parent.table_name}.firstname)"
|
||||
)
|
||||
end
|
||||
|
||||
|
||||
@@ -233,4 +233,19 @@ describe Spree::Address do
|
||||
expect(result2).not_to include(address1)
|
||||
end
|
||||
end
|
||||
|
||||
describe "ransacker :full_name_with_comma_reversed" do
|
||||
it "searches for records with matching reversed full names" do
|
||||
address1 = create(:address, firstname: 'John', lastname: 'Doe')
|
||||
address2 = create(:address, firstname: 'Jane', lastname: 'Smith')
|
||||
|
||||
result1 = described_class.ransack(full_name_with_comma_reversed_cont: 'Doe, John').result
|
||||
expect(result1).to include(address1)
|
||||
expect(result1).not_to include(address2)
|
||||
|
||||
result2 = described_class.ransack(full_name_with_comma_reversed_cont: 'Smith, Jane').result
|
||||
expect(result2).to include(address2)
|
||||
expect(result2).not_to include(address1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -230,19 +230,43 @@ describe '
|
||||
end
|
||||
|
||||
it "by customer name" do
|
||||
# by firstname
|
||||
fill_in "quick_filter", with: o1.bill_address.firstname
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li1], [li2, li3]
|
||||
|
||||
# by lastname
|
||||
fill_in "quick_filter", with: o1.bill_address.lastname
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li1], [li2, li3]
|
||||
end
|
||||
|
||||
it "by customer fullname with comma" do
|
||||
# by fullname
|
||||
fill_in "quick_filter", with: "#{o1.bill_address.firstname} #{o1.bill_address.lastname}"
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li1], [li2, li3]
|
||||
|
||||
fill_in "quick_filter", with: "#{o2.bill_address.firstname} #{o2.bill_address.lastname}"
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li2, li3], [li1]
|
||||
|
||||
# by fullname reversed
|
||||
fill_in "quick_filter", with: "#{o1.bill_address.lastname} #{o1.bill_address.firstname}"
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li1], [li2, li3]
|
||||
|
||||
fill_in "quick_filter", with: "#{o2.bill_address.lastname} #{o2.bill_address.firstname}"
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li2, li3], [li1]
|
||||
|
||||
# by fullname with comma
|
||||
fill_in "quick_filter", with: "#{o1.bill_address.firstname}, #{o1.bill_address.lastname}"
|
||||
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li1], [li2, li3]
|
||||
@@ -251,15 +275,15 @@ describe '
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li2, li3], [li1]
|
||||
end
|
||||
|
||||
it "by customer fullname reversed" do
|
||||
fill_in "quick_filter", with: "#{o1.bill_address.lastname} #{o1.bill_address.firstname}"
|
||||
# by fullname with comma reversed
|
||||
fill_in "quick_filter", with: "#{o1.bill_address.lastname}, #{o1.bill_address.firstname}"
|
||||
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li1], [li2, li3]
|
||||
|
||||
fill_in "quick_filter", with: "#{o2.bill_address.lastname} #{o2.bill_address.firstname}"
|
||||
fill_in "quick_filter", with: "#{o2.bill_address.lastname}, #{o2.bill_address.firstname}"
|
||||
page.find('.filter-actions .button.icon-search').click
|
||||
|
||||
expect_line_items_results [li2, li3], [li1]
|
||||
|
||||
Reference in New Issue
Block a user