mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-03-15 04:14:24 +00:00
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:
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user