38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import {
|
|
ADMIN_SSO_DEFAULT_REDIRECT,
|
|
isAdminSsoRequest,
|
|
resolveAdminSsoRedirect,
|
|
} from '@test-source/apps/web-antdv-next/src/router/admin-sso';
|
|
import { describe, expect, it } from 'vitest';
|
|
|
|
describe('admin SSO route helpers', () => {
|
|
it('recognizes only the explicit SSO bootstrap flag', () => {
|
|
expect(isAdminSsoRequest('1')).toBe(true);
|
|
expect(isAdminSsoRequest(['1'])).toBe(true);
|
|
expect(isAdminSsoRequest('true')).toBe(false);
|
|
expect(isAdminSsoRequest(undefined)).toBe(false);
|
|
});
|
|
|
|
it('accepts the Blog management route in plain or encoded form', () => {
|
|
expect(resolveAdminSsoRedirect('/blog/article')).toBe(
|
|
ADMIN_SSO_DEFAULT_REDIRECT,
|
|
);
|
|
expect(resolveAdminSsoRedirect('%2Fblog%2Farticle')).toBe(
|
|
ADMIN_SSO_DEFAULT_REDIRECT,
|
|
);
|
|
});
|
|
|
|
it.each([
|
|
'https://evil.example/',
|
|
'https%3A%2F%2Fevil.example%2F',
|
|
'//evil.example/',
|
|
'%2F%2Fevil.example%2F',
|
|
'/qqbot/account',
|
|
'/blog/article/61',
|
|
'broken',
|
|
undefined,
|
|
])('falls back to the fixed Blog management route for %s', (value) => {
|
|
expect(resolveAdminSsoRedirect(value)).toBe(ADMIN_SSO_DEFAULT_REDIRECT);
|
|
});
|
|
});
|