Ctrl K
ComunidadGuías…

lib/auth/__tests__/oauth-config.test.ts

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
import { afterEach, describe, expect, it, vi } from 'vitest'

import { getOidcProviderId } from '../oauth-config'

afterEach(() => {
  vi.unstubAllEnvs()
})

describe('getOidcProviderId', () => {
  it('defaults to "oidc"', () => {
    expect(getOidcProviderId()).toBe('oidc')
  })

  it('reads and trims OIDC_PROVIDER_ID', () => {
    vi.stubEnv('OIDC_PROVIDER_ID', '  corporate-idp  ')
    expect(getOidcProviderId()).toBe('corporate-idp')
  })

  it('accepts every character the callback path allows', () => {
    vi.stubEnv('OIDC_PROVIDER_ID', 'corp.Id-1:$ok')
    expect(getOidcProviderId()).toBe('corp.Id-1:$ok')
  })

  it('rejects characters outside the callback charset', () => {
    const warn = vi.spyOn(console, 'warn').mockImplementation(() => {})
    vi.stubEnv('OIDC_PROVIDER_ID', 'corp/idp')

    expect(() => getOidcProviderId()).toThrow(/Invalid OIDC_PROVIDER_ID/)
    expect(warn).not.toHaveBeenCalled()
  })

  it('rejects ids over 128 characters', () => {
    vi.stubEnv('OIDC_PROVIDER_ID', 'a'.repeat(129))

    expect(() => getOidcProviderId()).toThrow(/Invalid OIDC_PROVIDER_ID/)
  })
})