import { afterEach, describe, expect, it, vi } from 'vitest'; import { getEnabledSsoProviders, getSsoProvider } from './sso-providers'; describe('sso-providers', () => { afterEach(() => { vi.unstubAllEnvs(); }); it('returns the enabled providers in login button order', () => { vi.stubEnv('NEXT_PUBLIC_WORKOS_ENABLED', 'true'); vi.stubEnv('NEXT_PUBLIC_KEYCLOAK_ENABLED', 'true'); expect(getEnabledSsoProviders()).toEqual([ { id: 'workos', buttonLabel: 'Continue with WorkOS', description: 'Enterprise SSO via WorkOS', enabled: true, href: '/auth/provider/workos', }, { id: 'keycloak', buttonLabel: 'Continue with Keycloak', description: 'Enterprise SSO via Keycloak', enabled: true, href: '/auth/provider/keycloak', }, ]); }); it('marks disabled providers without exposing them in the enabled list', () => { vi.stubEnv('NEXT_PUBLIC_WORKOS_ENABLED', 'true'); vi.stubEnv('NEXT_PUBLIC_KEYCLOAK_ENABLED', 'false'); expect(getEnabledSsoProviders().map((provider) => provider.id)).toEqual(['workos']); expect(getSsoProvider('keycloak')).toEqual({ id: 'keycloak', buttonLabel: 'Continue with Keycloak', description: 'Enterprise SSO via Keycloak', enabled: false, href: '/auth/provider/keycloak', }); }); it('returns null for unknown providers', () => { expect(getSsoProvider('authentik')).toBeNull(); }); });