feat: Authenticated Shell: Header, Quick Tabs and Change Password

This commit is contained in:
OpenVelo Agent
2026-07-21 22:26:44 +00:00
parent e5720c66dc
commit 1539a904c1
35 changed files with 1978 additions and 89 deletions
@@ -0,0 +1,29 @@
import { deriveActiveSectionFromUrl } from '../../frontend/src/app/features/home/home.shell';
describe('deriveActiveSectionFromUrl', () => {
it('returns Scoreboard for /scoreboard', () => {
expect(deriveActiveSectionFromUrl('/scoreboard')).toBe('Scoreboard');
});
it('returns Blog for /blog', () => {
expect(deriveActiveSectionFromUrl('/blog')).toBe('Blog');
});
it('returns Admin for /admin', () => {
expect(deriveActiveSectionFromUrl('/admin')).toBe('Admin');
});
it('returns Challenges for / or /challenges', () => {
expect(deriveActiveSectionFromUrl('/')).toBe('Challenges');
expect(deriveActiveSectionFromUrl('/challenges')).toBe('Challenges');
});
it('ignores query string and hash', () => {
expect(deriveActiveSectionFromUrl('/scoreboard?x=1')).toBe('Scoreboard');
expect(deriveActiveSectionFromUrl('/blog#top')).toBe('Blog');
});
it('falls back to Challenges for empty url', () => {
expect(deriveActiveSectionFromUrl('')).toBe('Challenges');
});
});