import assert from 'assert' import { ImportMock } from 'ts-mock-imports' import * as configModule from '../lib/config' import { DropboxMiddleware } from '../lib/web/auth/dropbox' import { EmailMiddleware } from '../lib/web/auth/email' import { FacebookMiddleware } from '../lib/web/auth/facebook' import { GithubMiddleware } from '../lib/web/auth/github' import { GitlabMiddleware } from '../lib/web/auth/gitlab' import { GoogleMiddleware } from '../lib/web/auth/google' import { LdapMiddleware } from '../lib/web/auth/ldap' import { OAuth2Middleware } from '../lib/web/auth/oauth2' import { OPenIDMiddleware } from '../lib/web/auth/openid' import { TwitterMiddleware } from '../lib/web/auth/twitter' describe('AuthMiddlewares', function () { // We currently exclude the SAML Auth, because it needs a certificate file const middlewareList = [{ name: 'Facebook', middleware: FacebookMiddleware, config: { facebook: { clientID: 'foobar', clientSecret: 'foobar' } } }, { name: 'Twitter', middleware: TwitterMiddleware, config: { twitter: { consumerKey: 'foobar', consumerSecret: 'foobar' } } }, { name: 'GitHub', middleware: GithubMiddleware, config: { github: { clientID: 'foobar', clientSecret: 'foobar' } } }, { name: 'Gitlab', middleware: GitlabMiddleware, config: { gitlab: { clientID: 'foobar', clientSecret: 'foobar' } } }, { name: 'Dropbox', middleware: DropboxMiddleware, config: { dropbox: { clientID: 'foobar', clientSecret: 'foobar' } } }, { name: 'Google', middleware: GoogleMiddleware, config: { google: { clientID: 'foobar', clientSecret: 'foobar' } } }, { name: 'LDAP', middleware: LdapMiddleware, config: { ldap: {} } }, { name: 'OAuth2', middleware: OAuth2Middleware, config: { oauth2: { clientID: 'foobar', clientSecret: 'foobar', authorizationURL: 'foobar', tokenURL: 'foobar', userProfileURL: 'foobar', scope: 'foobar' } } }, { name: 'Email', middleware: EmailMiddleware, config: {} }, { name: 'OpenID', middleware: OPenIDMiddleware, config: {} }] middlewareList.forEach((middleware) => { describe(middleware.name + 'Middleware', () => { before(() => { ImportMock.mockOther(configModule, 'config', middleware.config) }) it('can be instantiated', () => { assert.ok(middleware.middleware.getMiddleware()) }) }) }) })