useAppSettings: align fallback defaults to Angular AppSettings (1/7 board, 1/330 schedule, 2h flight status)
This commit is contained in:
@@ -47,10 +47,11 @@ describe("useAppSettings", () => {
|
||||
const { result } = renderHook(() => useAppSettings());
|
||||
|
||||
await waitFor(() => expect(result.current.loading).toBe(false));
|
||||
expect(result.current.onlineboardSearchFrom).toBe(2);
|
||||
expect(result.current.onlineboardSearchTo).toBe(14);
|
||||
expect(result.current.scheduleSearchFrom).toBe(30);
|
||||
expect(result.current.scheduleSearchTo).toBe(30);
|
||||
// Defaults match Angular AppSettings (boardSearch 1/7, scheduleSearch 1/330).
|
||||
expect(result.current.onlineboardSearchFrom).toBe(1);
|
||||
expect(result.current.onlineboardSearchTo).toBe(7);
|
||||
expect(result.current.scheduleSearchFrom).toBe(1);
|
||||
expect(result.current.scheduleSearchTo).toBe(330);
|
||||
});
|
||||
|
||||
it("returns defaults when a specific value does not match /\\d+d/", async () => {
|
||||
@@ -67,7 +68,7 @@ describe("useAppSettings", () => {
|
||||
const { result } = renderHook(() => useAppSettings());
|
||||
|
||||
await waitFor(() => expect(result.current.loading).toBe(false));
|
||||
expect(result.current.onlineboardSearchFrom).toBe(2);
|
||||
expect(result.current.onlineboardSearchFrom).toBe(1); // default, blah doesn't parse
|
||||
expect(result.current.onlineboardSearchTo).toBe(14);
|
||||
});
|
||||
|
||||
@@ -80,7 +81,7 @@ describe("useAppSettings", () => {
|
||||
expect(result.current.loading).toBe(true);
|
||||
await waitFor(() => expect(result.current.loading).toBe(false));
|
||||
expect(result.current.error).toBe(err);
|
||||
expect(result.current.onlineboardSearchFrom).toBe(2);
|
||||
expect(result.current.onlineboardSearchFrom).toBe(1);
|
||||
});
|
||||
|
||||
it("parses buttons config into hour numbers", async () => {
|
||||
@@ -108,7 +109,8 @@ describe("useAppSettings", () => {
|
||||
const { result } = renderHook(() => useAppSettings());
|
||||
|
||||
await waitFor(() => expect(result.current.loading).toBe(false));
|
||||
expect(result.current.flightStatusAvailableFromHours).toBe(24);
|
||||
// Defaults match Angular (flightStatusAvailableFrom: 2h, buyPeriod.min: 2h, buyPeriod.max: 72h).
|
||||
expect(result.current.flightStatusAvailableFromHours).toBe(2);
|
||||
expect(result.current.buyTicketMinHours).toBe(2);
|
||||
expect(result.current.buyTicketMaxHours).toBe(72);
|
||||
});
|
||||
|
||||
@@ -5,12 +5,20 @@ import { getAppSettings } from "@/shared/api/appSettings.js";
|
||||
const DAYS_PATTERN = /^(\d+)d$/;
|
||||
const HOURS_PATTERN = /^(\d+)h$/;
|
||||
|
||||
// Mirrors Angular's `AppSettings` default payload
|
||||
// (ClientApp/src/app/shared/models-legacy/app-settings.model.ts):
|
||||
// boardSearchFrom: 1, boardSearchTo: 7,
|
||||
// scheduleSearchFrom: 1, scheduleSearchTo: 330,
|
||||
// flightStatusAvailableFrom: 2 (hours), buyPeriod.min: 2h, buyPeriod.max: 330d
|
||||
// These are used when the UI-options API fails or is unreachable —
|
||||
// keeping them aligned with Angular avoids a silent calendar-window
|
||||
// mismatch in offline / error paths.
|
||||
const DEFAULTS = {
|
||||
onlineboardSearchFrom: 2,
|
||||
onlineboardSearchTo: 14,
|
||||
scheduleSearchFrom: 30,
|
||||
scheduleSearchTo: 30,
|
||||
flightStatusAvailableFromHours: 24,
|
||||
onlineboardSearchFrom: 1,
|
||||
onlineboardSearchTo: 7,
|
||||
scheduleSearchFrom: 1,
|
||||
scheduleSearchTo: 330,
|
||||
flightStatusAvailableFromHours: 2,
|
||||
buyTicketMinHours: 2,
|
||||
buyTicketMaxHours: 72,
|
||||
} as const;
|
||||
|
||||
Reference in New Issue
Block a user