fix: align permission navigation and page access

This commit is contained in:
2026-07-11 14:55:49 +08:00
parent 1e1c476bc3
commit b6fca99390
27 changed files with 434 additions and 49 deletions

View File

@@ -0,0 +1,19 @@
import { describe, expect, it } from 'vitest';
import { filterTabsByPermission } from './permission-tabs';
describe('permission-aware tabs', () => {
const tabs = [
{ key: 'all', requiredPermission: 'deposit:view' },
{ key: 'pending', requiredPermission: 'deposit:approve' },
];
it('hides tabs whose backing API permission is missing', () => {
expect(filterTabsByPermission(tabs, ['deposit:view']).map((tab) => tab.key)).toEqual(['all']);
});
it('shows a privileged tab only when its permission is present', () => {
expect(
filterTabsByPermission(tabs, ['deposit:view', 'deposit:approve']).map((tab) => tab.key),
).toEqual(['all', 'pending']);
});
});