updateMyUser,
wait,
userLogin,
- updatePluginSettings
+ updatePluginSettings,
+ createUser
} from '../../../shared/extra-utils'
import { cleanupTests, flushAndRunServer, ServerInfo, waitUntilLog } from '../../../shared/extra-utils/server/servers'
username: string
query?: any
statusCodeExpected?: number
+ statusCodeExpectedStep2?: number
}) {
const res = await getExternalAuth({
url: options.server.url,
const resLogin = await loginUsingExternalToken(
options.server,
options.username,
- externalAuthToken as string
+ externalAuthToken as string,
+ options.statusCodeExpectedStep2
)
return resLogin.body
const config: ServerConfig = res.body
const auths = config.plugin.registeredExternalAuths
- expect(auths).to.have.lengthOf(3)
+ expect(auths).to.have.lengthOf(6)
const auth2 = auths.find((a) => a.authName === 'external-auth-2')
expect(auth2).to.exist
expect(body.role).to.equal(UserRole.USER)
})
+ it('Should not update an external auth email', async function () {
+ await updateMyUser({
+ url: server.url,
+ accessToken: cyanAccessToken,
+ email: 'toto@example.com',
+ currentPassword: 'toto',
+ statusCodeExpected: 400
+ })
+ })
+
it('Should reject token of Kefka by the plugin hook', async function () {
this.timeout(10000)
const config: ServerConfig = res.body
const auths = config.plugin.registeredExternalAuths
- expect(auths).to.have.lengthOf(2)
+ expect(auths).to.have.lengthOf(5)
const auth1 = auths.find(a => a.authName === 'external-auth-2')
expect(auth1).to.not.exist
username: 'cyan',
statusCodeExpected: 404
})
+
+ await userLogin(server, { username: 'cyan', password: null }, 400)
+ await userLogin(server, { username: 'cyan', password: '' }, 400)
+ await userLogin(server, { username: 'cyan', password: 'fake' }, 400)
+ })
+
+ it('Should not login kefka with another plugin', async function () {
+ await loginExternal({
+ server,
+ npmName: 'test-external-auth-two',
+ authName: 'external-auth-4',
+ username: 'kefka2',
+ statusCodeExpectedStep2: 400
+ })
+
+ await loginExternal({
+ server,
+ npmName: 'test-external-auth-two',
+ authName: 'external-auth-4',
+ username: 'kefka',
+ statusCodeExpectedStep2: 400
+ })
+ })
+
+ it('Should not login an existing user', async function () {
+ await createUser({
+ url: server.url,
+ accessToken: server.accessToken,
+ username: 'existing_user',
+ password: 'super_password'
+ })
+
+ await loginExternal({
+ server,
+ npmName: 'test-external-auth-two',
+ authName: 'external-auth-6',
+ username: 'existing_user',
+ statusCodeExpectedStep2: 400
+ })
})
it('Should display the correct configuration', async function () {
const config: ServerConfig = res.body
const auths = config.plugin.registeredExternalAuths
- expect(auths).to.have.lengthOf(1)
+ expect(auths).to.have.lengthOf(4)
const auth2 = auths.find((a) => a.authName === 'external-auth-2')
expect(auth2).to.not.exist