Merge pull request #9526 from jibees/6730-use-a-date-range-picker

Admin, List of Orders & Orders Bulk Management pages: use a date range picker
This commit is contained in:
Maikel
2022-10-10 13:59:37 +11:00
committed by GitHub
21 changed files with 188 additions and 178 deletions

View File

@@ -534,7 +534,7 @@ describe '
}
let!(:o2) {
create(:order_with_distributor, state: 'complete', shipment_state: 'ready',
completed_at: Time.zone.today - 7.days)
completed_at: Time.zone.today - 6.days)
}
let!(:o3) {
create(:order_with_distributor, state: 'complete', shipment_state: 'ready',
@@ -542,12 +542,13 @@ describe '
}
let!(:o4) {
create(:order_with_distributor, state: 'complete', shipment_state: 'ready',
completed_at: Time.zone.now.end_of_day + 1.second)
completed_at: Time.zone.now.end_of_day + 1.day)
}
let!(:li1) { create(:line_item_with_shipment, order: o1, quantity: 1 ) }
let!(:li2) { create(:line_item_with_shipment, order: o2, quantity: 2 ) }
let!(:li3) { create(:line_item_with_shipment, order: o3, quantity: 3 ) }
let!(:li4) { create(:line_item_with_shipment, order: o4, quantity: 4 ) }
let(:today) { Time.zone.today }
before :each do
visit_bulk_order_management
@@ -555,10 +556,8 @@ describe '
it "displays date fields for filtering orders, with default values set" do
# use Date.current since Date.today is without timezone
today = Time.zone.today
one_week_ago = today.prev_day(7).strftime("%F")
expect(page).to have_field "start_date_filter", with: one_week_ago
expect(page).to have_field "end_date_filter", with: today.strftime("%F")
expect(find("input.datepicker").value).to eq "#{one_week_ago} to #{today.strftime('%F')}"
end
it "only loads line items whose orders meet the date restriction criteria" do
@@ -569,16 +568,20 @@ describe '
end
it "displays only line items whose orders meet the date restriction criteria, when changed" do
find('#start_date_filter').click
select_date_from_datepicker Time.zone.today - 8.days
from = today - 8.days
to = today + 1.day
find("input.datepicker").click
select_dates_from_daterangepicker(from, today)
expect(page).to have_text 'Loading orders'
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_selector "tr#li_#{li2.id}"
expect(page).to have_selector "tr#li_#{li3.id}"
expect(page).to have_no_selector "tr#li_#{li4.id}"
find('#end_date_filter').click
select_date_from_datepicker Time.zone.today + 1.day
find("input.datepicker").click
select_dates_from_daterangepicker(from, to)
expect(page).to have_selector "tr#li_#{li1.id}"
expect(page).to have_selector "tr#li_#{li2.id}"
@@ -596,8 +599,8 @@ describe '
it "shows a dialog and ignores changes when confirm dialog is accepted" do
page.driver.accept_modal :confirm,
text: "Unsaved changes exist and will be lost if you continue." do
find('#start_date_filter').click
select_date_from_datepicker Time.zone.today - 9.days
find("input.datepicker").click
select_dates_from_daterangepicker(today - 9.days, today)
end
expect(page).to have_no_selector "#save-bar"
within("tr#li_#{li2.id} td.quantity") do
@@ -608,8 +611,8 @@ describe '
it "shows a dialog and keeps changes when confirm dialog is rejected" do
page.driver.dismiss_modal :confirm,
text: "Unsaved changes exist and will be lost if you continue." do
find('#start_date_filter').click
select_date_from_datepicker Time.zone.today - 9.days
find("input.datepicker").click
select_dates_from_daterangepicker(today - 9.days, today)
end
expect(page).to have_selector "#save-bar"
within("tr#li_#{li2.id} td.quantity") do

View File

@@ -700,6 +700,7 @@ describe '
datetime = Time.zone.at(Time.zone.local(2040, 10, 17, 0o6, 0o0, 0o0))
input = find(".flatpickr-calendar.open .flatpickr-minute")
input.send_keys datetime.strftime("%M").to_s.strip
input.send_keys :enter
expect(page).to have_content "You have unsaved changes"
end

View File

@@ -90,10 +90,8 @@ describe '
it "filter by complete date" do
login_as_admin_and_visit 'admin/orders'
find('#q_completed_at_gteq').click
select_date_from_datepicker order3.completed_at.yesterday
find('#q_completed_at_lteq').click
select_date_from_datepicker order4.completed_at.tomorrow
find("input.datepicker").click
select_dates_from_daterangepicker(order3.completed_at.yesterday, order4.completed_at.tomorrow)
page.find('.filter-actions .button.icon-search').click
@@ -218,7 +216,7 @@ describe '
end
end
context "save the filter params" do
context "save the filter params", js: true do
let!(:shipping_method) { create(:shipping_method, name: "UPS Ground") }
let!(:user) { create(:user, email: 'an@email.com') }
let!(:order) do
@@ -246,10 +244,8 @@ describe '
fill_in "Email", with: user.email
fill_in "First name begins with", with: "J"
fill_in "Last name begins with", with: "D"
find('#q_completed_at_gteq').click
select_date_from_datepicker Time.zone.at(1.week.ago)
find('#q_completed_at_lteq').click
select_date_from_datepicker Time.zone.now.tomorrow
find("input.datepicker").click
select_dates_from_daterangepicker(Time.zone.at(1.week.ago), Time.zone.now.tomorrow)
page.find('a.icon-search').click
end
@@ -267,8 +263,7 @@ describe '
expect(find_field("Email").value).to eq user.email
expect(find_field("First name begins with").value).to eq "J"
expect(find_field("Last name begins with").value).to eq "D"
expect(find("#q_completed_at_gteq").value).to eq 1.week.ago.strftime("%Y-%m-%d")
expect(find("#q_completed_at_lteq").value).to eq Time.zone.now.tomorrow.strftime("%Y-%m-%d")
expect(find("input.datepicker").value).to eq "#{1.week.ago.strftime('%Y-%m-%d')} to #{Time.zone.now.tomorrow.strftime('%Y-%m-%d')}"
end
it "and clear filters" do
@@ -282,8 +277,7 @@ describe '
expect(find_field("Email").value).to be_empty
expect(find_field("First name begins with").value).to be_empty
expect(find_field("Last name begins with").value).to be_empty
expect(find("#q_completed_at_gteq").value).to be_empty
expect(find("#q_completed_at_lteq").value).to be_empty
expect(find("input.datepicker").value).to be_empty
end
end
end