0

Sinon.JS を使用して次のような関数をテストするにはどうすればよいですか?

export function getToken(done) {
  const kc = Keycloak(config)
  kc.init({ onLoad: 'login-required' })
    .success(authenticated => {
      authenticated ? done(null, kc.token) : done(new Error('Some error!'), null)
    })
    .error(() => {
      done(new Error('Some error'), null)
    })
}

次のようなことを試みましたが、役に立ちませんでした。

it('should return access_token', () => {
    const mockKeycloak = sinon.stub(Keycloak, 'init').returns({
      success: () => (true)
    })
    getToken(function () {})
    expect(mockKeycloak.callCount).to.equal(1)
  })

基本的に、keycloak-jsの Keycloak は IIFE ですが、ウィンドウ参照でKeycloakオブジェクトをスタブしようとしても、動作させることができません。

4

1 に答える 1