Select outbound date first for returns
This commit is contained in:
parent
2b475aa726
commit
21f84e2fb6
2 changed files with 33 additions and 5 deletions
|
|
@ -163,7 +163,7 @@
|
|||
/* ── state ───────────────────────────────────────────────────────── */
|
||||
let viewYear = TODAY.getFullYear();
|
||||
let viewMonth = TODAY.getMonth(); // 0-based
|
||||
let outDate = new Date(TODAY); // default: today selected
|
||||
let outDate = new Date(TODAY); // default for single journeys
|
||||
let retDate = null;
|
||||
let hoverDate = null;
|
||||
let isReturn = false;
|
||||
|
|
@ -409,12 +409,12 @@
|
|||
? 'Date: <strong>' + dispDate(outDate) + '</strong>'
|
||||
: '<span class="cal-cta">Select a travel date</span>';
|
||||
} else if (!outDate) {
|
||||
el.innerHTML = '<span class="cal-cta">Select departure date</span>';
|
||||
el.innerHTML = '<span class="cal-cta">Select outbound date</span>';
|
||||
} else if (retPhase) {
|
||||
el.innerHTML = 'Depart: <strong>' + dispDate(outDate) +
|
||||
el.innerHTML = 'Outbound: <strong>' + dispDate(outDate) +
|
||||
'</strong> · <span class="cal-cta">Now select return date</span>';
|
||||
} else {
|
||||
el.innerHTML = 'Depart: <strong>' + dispDate(outDate) +
|
||||
el.innerHTML = 'Outbound: <strong>' + dispDate(outDate) +
|
||||
'</strong> · Return: <strong>' + dispDate(retDate) + '</strong>';
|
||||
}
|
||||
}
|
||||
|
|
@ -439,9 +439,11 @@
|
|||
var wasReturn = isReturn;
|
||||
isReturn = this.value === 'return';
|
||||
if (isReturn && !wasReturn) {
|
||||
outDate = null;
|
||||
retDate = null;
|
||||
retPhase = outDate !== null;
|
||||
retPhase = false;
|
||||
} else if (!isReturn) {
|
||||
if (!outDate) outDate = new Date(TODAY);
|
||||
retDate = null;
|
||||
retPhase = false;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -506,6 +506,32 @@ def test_return_advance_first_standard_premier_totals(local_server: str) -> None
|
|||
browser.close()
|
||||
|
||||
|
||||
def test_return_calendar_selects_outbound_before_return(local_server: str) -> None:
|
||||
with sync_playwright() as p:
|
||||
browser = _launch_browser(p)
|
||||
page = browser.new_page()
|
||||
page.goto(f"{local_server}/", wait_until="domcontentloaded")
|
||||
|
||||
page.locator("#journey-return").check(force=True)
|
||||
assert page.locator("#cal-hint").inner_text() == "Select outbound date"
|
||||
assert page.locator("#travel_date").input_value() == ""
|
||||
assert page.locator("#return_date").input_value() == ""
|
||||
|
||||
page.get_by_role("button", name="10 June 2026").click()
|
||||
assert page.locator("#travel_date").input_value() == "2026-06-10"
|
||||
assert page.locator("#return_date").input_value() == ""
|
||||
assert "Now select return date" in page.locator("#cal-hint").inner_text()
|
||||
|
||||
page.get_by_role("button", name="17 June 2026").click()
|
||||
assert page.locator("#travel_date").input_value() == "2026-06-10"
|
||||
assert page.locator("#return_date").input_value() == "2026-06-17"
|
||||
assert "Return: Wed 17 Jun" in page.locator("#cal-hint").inner_text()
|
||||
|
||||
page.locator('button[type="submit"]').click()
|
||||
page.wait_for_url("**/results/BRI/paris/2026-06-10/return/2026-06-17", timeout=10000)
|
||||
browser.close()
|
||||
|
||||
|
||||
def test_return_advance_first_standard_premier_totals_on_initial_url(
|
||||
local_server: str,
|
||||
) -> None:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue