This commit is contained in:
2026-06-23 22:03:26 -07:00
parent 2e3c1e3646
commit e8cbd2760c
7 changed files with 110 additions and 45 deletions

View File

@@ -1,5 +1,11 @@
import { test, expect } from '@playwright/test';
// Reset the shared test-server dataset before each test so tests are isolated
// from one another (and from other spec files) regardless of run order.
test.beforeEach(async ({ request }) => {
await request.post('/test-reset');
});
async function navigateToTransactions(page: any, path: string = '/transaction2') {
await page.setExtraHTTPHeaders({
'x-clients': '"mine"'
@@ -90,15 +96,24 @@ test.describe('Transaction Navigation - Amount Filter Persistence', () => {
test.describe('Transaction Navigation - Date Filter Persistence', () => {
test('should persist date-range preset when navigating between pages', async ({ page }) => {
// Step 1: Navigate with date-range=all (includes 2022 test data)
// Step 1: Navigate with date-range=all (includes 2022 test data).
// The server expands the "all" preset into a concrete start-date (~6 years
// back) and drops the date-range key, so persistence happens via start-date.
await navigateToTransactions(page, '/transaction2?date-range=all');
// Step 2: Click Unapproved nav link
await clickTransactionNavLink(page, 'Unapproved');
// Step 3: Verify date-range persisted
const unapprovedUrl = page.url();
expect(unapprovedUrl).toContain('date-range=all');
// Step 3: Verify the expanded date range persisted as a start-date.
// "all" resolves to roughly 6 years before today (MM/DD/YYYY).
const sixYearsAgo = new Date();
sixYearsAgo.setFullYear(sixYearsAgo.getFullYear() - 6);
const mm = String(sixYearsAgo.getMonth() + 1).padStart(2, '0');
const dd = String(sixYearsAgo.getDate()).padStart(2, '0');
const expectedStart = `${mm}/${dd}/${sixYearsAgo.getFullYear()}`;
const startDate = new URL(page.url()).searchParams.get('start-date');
expect(startDate).toBe(expectedStart);
});
});