UNPKG

@solid/oidc-auth-manager

Version:

An OpenID Connect (OIDC) authentication manager (OP, RP and RS) for decentralized peer-to-peer authentication

71 lines (59 loc) 2 kB
'use strict' const fs = require('fs-extra') const path = require('path') const chai = require('chai') const dirtyChai = require('dirty-chai') chai.use(dirtyChai) const expect = chai.expect const sinon = require('sinon') const sinonChai = require('sinon-chai') chai.use(sinonChai) chai.should() const OidcManager = require('../../src/oidc-manager') const dbPath = path.resolve(__dirname, '../db/oidc') const serverUri = 'https://example.com' describe('OidcManager (integration tests)', () => { beforeEach(() => { fs.removeSync(dbPath) fs.mkdirpSync(dbPath) }) describe('loadProviderConfig()', () => { it('it should return a minimal config if no saved config present', () => { const config = { authCallbackUri: serverUri + '/api/oidc/rp', postLogoutUri: serverUri + '/goodbye', host: {}, serverUri, providerUri: serverUri, dbPath } const oidc = OidcManager.from(config) const providerConfig = oidc.loadProviderConfig() expect(providerConfig.issuer).to.equal(serverUri) expect(providerConfig.keys).to.not.exist() }) it('should attempt to load a previously saved provider config', () => { const config = { authCallbackUri: serverUri + '/api/oidc/rp', postLogoutUri: serverUri + '/goodbye', host: {}, serverUri, providerUri: serverUri, dbPath } const oidc = OidcManager.from(config) oidc.initLocalRpClient = sinon.stub() return oidc.initialize() .catch(err => { console.error('Error during .initialize(): ', err) }) .then(() => { const providerConfig = oidc.loadProviderConfig() expect(providerConfig.issuer).to.equal(serverUri) expect(providerConfig.authorization_endpoint).to.exist() expect(providerConfig.keys).to.exist() expect(oidc.initLocalRpClient).to.have.been.called() }) }).timeout(20000) }) })