Files
dockhand-upstream/tests/landing.test.ts
T

28 lines
1.3 KiB
TypeScript

import { describe, it, expect } from 'bun:test';
import { landingRedirectTarget } from '../src/lib/utils/landing';
describe('landingRedirectTarget', () => {
it('redirects to the configured landing page (page only, no env)', () => {
expect(landingRedirectTarget({ landingPage: 'volumes' }, false)).toBe('/volumes');
expect(landingRedirectTarget({ landingPage: 'containers' }, false)).toBe('/containers');
});
it('stays on the dashboard when landing is dashboard or unset', () => {
expect(landingRedirectTarget({ landingPage: 'dashboard' }, false)).toBeNull();
expect(landingRedirectTarget({ landingPage: null }, false)).toBeNull();
expect(landingRedirectTarget({}, false)).toBeNull();
expect(landingRedirectTarget(null, false)).toBeNull();
});
it('the ?home marker suppresses the redirect (sidebar Dashboard / logo click)', () => {
expect(landingRedirectTarget({ landingPage: 'volumes' }, true)).toBeNull();
expect(landingRedirectTarget({ landingPage: 'containers' }, true)).toBeNull();
});
it('redirects on every open without the marker (no per-tab memory)', () => {
// Same input, no marker -> always the same redirect, however many times the app opens.
expect(landingRedirectTarget({ landingPage: 'stacks' }, false)).toBe('/stacks');
expect(landingRedirectTarget({ landingPage: 'stacks' }, false)).toBe('/stacks');
});
});