Commit inicial - upload de todos os arquivos da pasta
This commit is contained in:
63
src/constants/__tests__/breadcrumbs.test.ts
Normal file
63
src/constants/__tests__/breadcrumbs.test.ts
Normal file
@@ -0,0 +1,63 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
import { breadcrumbRoutes } from '../breadcrumbs';
|
||||
|
||||
const expectedRoutes = [
|
||||
'/',
|
||||
'/entregaveis',
|
||||
'/entregaveis/:id',
|
||||
'/ordens-servico',
|
||||
'/sprints',
|
||||
'/profissionais',
|
||||
'/usuarios',
|
||||
'/usuarios/novo',
|
||||
'/usuarios/:id/editar',
|
||||
'/clientes',
|
||||
'/configuracoes',
|
||||
];
|
||||
|
||||
describe('breadcrumbRoutes', () => {
|
||||
it('cobre todas as rotas do sistema', () => {
|
||||
const patterns = breadcrumbRoutes.map((r) => r.pattern);
|
||||
for (const route of expectedRoutes) {
|
||||
expect(patterns).toContain(route);
|
||||
}
|
||||
});
|
||||
|
||||
it('cada configuração tem pelo menos um item', () => {
|
||||
for (const route of breadcrumbRoutes) {
|
||||
expect(route.items.length).toBeGreaterThanOrEqual(1);
|
||||
}
|
||||
});
|
||||
|
||||
it('último item de cada configuração não tem "to"', () => {
|
||||
for (const route of breadcrumbRoutes) {
|
||||
const lastItem = route.items[route.items.length - 1];
|
||||
expect(lastItem.to).toBeUndefined();
|
||||
}
|
||||
});
|
||||
|
||||
it('rotas com parâmetros usam padrão :param', () => {
|
||||
const dynamicRoutes = breadcrumbRoutes.filter((r) => r.pattern.includes(':'));
|
||||
expect(dynamicRoutes.length).toBeGreaterThan(0);
|
||||
for (const route of dynamicRoutes) {
|
||||
expect(route.pattern).toMatch(/:\w+/);
|
||||
}
|
||||
});
|
||||
|
||||
it('Dashboard é sempre a raiz dos breadcrumbs', () => {
|
||||
for (const route of breadcrumbRoutes) {
|
||||
expect(route.items[0].label).toBe('Dashboard');
|
||||
}
|
||||
});
|
||||
|
||||
it('página Dashboard não tem link no item', () => {
|
||||
const dashboardRoute = breadcrumbRoutes.find((r) => r.pattern === '/');
|
||||
expect(dashboardRoute?.items[0].to).toBeUndefined();
|
||||
});
|
||||
|
||||
it('não inclui rotas de autenticação', () => {
|
||||
const patterns = breadcrumbRoutes.map((r) => r.pattern);
|
||||
expect(patterns).not.toContain('/login');
|
||||
expect(patterns).not.toContain('/trocar-senha');
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user