#How can I mock or stub Keycloak in unit tests?

2 messages · Page 1 of 1 (latest)

subtle mesa
#

So basically I have a nuxt plugin to setup Keycloak, how can I mock or stub keycloak during unit tests?

This is my plugin

import Keycloak from 'keycloak-js'

export default defineNuxtPlugin(async (_nuxtApp) => {
  const config = useRuntimeConfig()
  const keycloak = new Keycloak({
    url: config.public.keycloakAuthUrl,
    realm: config.public.keycloakRealm,
    clientId: config.public.keycloakClientId
  })

  try {
    // init keycloak instance
    await keycloak.init({
      onLoad: 'check-sso',
      responseMode: 'query',
      pkceMethod: 'S256'
    })

  } catch (error) {
    console.error('Failed to initialize Keycloak adapter: ', error)
  }

  return {
    provide: {
      // provide global keycloak instance
      keycloak
    }
  }
}) 

Then I've tried to stub useNuxtApp like this, ive also tried mocking using mockNuxtImport

vi.stubGlobal('useNuxtApp', () => ({
      $keycloak: {
        login: mockLogin,
        logout: vi.fn(),
        loadUserProfile: vi.fn(),
        authenticated: false,
        tokenParsed: mockParsedToken
      }
    }))

But I still get this error Failed to initialize Keycloak adapter: clientId missing

Can anyone point me in the right direction?

clever agate
#

Sorry to necro this but did you ever find a solution? Thanks