task-5 fix: isRole, login redirect, create-user script per cliente e trainer

This commit is contained in:
2026-08-21 19:53:12 +02:00
parent 473c0d8c36
commit d3abbf9bf7
4 changed files with 30 additions and 5 deletions
+26 -1
View File
@@ -1,5 +1,5 @@
import { describe, it, expect } from 'vitest';
import { canAccessAdminPath, isProtectedPath, landingFor } from '../../src/lib/auth';
import { canAccessAdminPath, isProtectedPath, landingFor, isRole } from '../../src/lib/auth';
describe('accesso alle rotte longevity', () => {
it('il cliente entra nel proprio spazio', () => {
@@ -21,6 +21,12 @@ describe('accesso alle rotte longevity', () => {
expect(canAccessAdminPath('cliente', '/admin/posts')).toBe(false);
});
it('il trainer non entra nelle altre piattaforme ne nel blog', () => {
expect(canAccessAdminPath('trainer', '/campus')).toBe(false);
expect(canAccessAdminPath('trainer', '/admin/content')).toBe(false);
expect(canAccessAdminPath('trainer', '/admin/posts')).toBe(false);
});
it('il ruolo piattaforme non eredita longevity', () => {
expect(canAccessAdminPath('piattaforme', '/longevity/gestionale')).toBe(false);
});
@@ -68,3 +74,22 @@ describe('landingFor — indirizzo di atterraggio per ruolo', () => {
expect(landingFor('user')).toBe('/admin');
});
});
describe('isRole — validazione dei ruoli', () => {
it('cliente e trainer sono ruoli validi', () => {
expect(isRole('cliente')).toBe(true);
expect(isRole('trainer')).toBe(true);
});
it('i ruoli già esistenti restano validi', () => {
expect(isRole('admin')).toBe(true);
expect(isRole('superuser')).toBe(true);
expect(isRole('user')).toBe(true);
expect(isRole('piattaforme')).toBe(true);
});
it('campus e stringhe inventate non sono ruoli', () => {
expect(isRole('campus')).toBe(false);
expect(isRole('qualsiasi-cosa')).toBe(false);
});
});