UNPKG

keycloak-request-token

Version:

Simple utility to request a token from a Keycloak Server

75 lines (60 loc) 1.95 kB
'use strict'; const test = require('tape'), keycloakTokenRequest = require('../index'); test('keycloakTokenRequest should return a promise containing the access token', (t) => { const baseUrl = 'http://127.0.0.1:8080/auth'; const settings = { username: 'admin', password: 'admin', grant_type: 'password', client_id: 'admin-cli' }; let kca = keycloakTokenRequest(baseUrl, settings); t.equal(kca instanceof Promise, true, 'should return a Promise'); kca.then((accessToken) => { t.end(); }); }); test('keycloakTokenRequest failed login, wrong user creds', (t) => { const baseUrl = 'http://127.0.0.1:8080/auth'; const settings = { username: 'admin', password: 'wrong', grant_type: 'password', client_id: 'admin-cli' }; let kca = keycloakTokenRequest(baseUrl, settings); kca.catch((err) => { t.equal(err.error_description, 'Invalid user credentials', 'error description should be invalid credentials'); t.equal(err.error, 'invalid_grant', 'error invalid_grant'); t.end(); }); }); test('keycloakTokenRequest wrong baseURL', (t) => { const baseUrl = 'http://127.0.0.1:8080/notauth'; const settings = { username: 'admin', password: 'admin', grant_type: 'password', client_id: 'admin-cli' }; let kca = keycloakTokenRequest(baseUrl, settings); kca.catch((err) => { t.equal(err, '<html><head><title>Error</title></head><body>404 - Not Found</body></html>', 'should return the 404 html code'); t.end(); }); }); test('keycloakTokenRequest wrong url - connection refused', (t) => { const baseUrl = 'http://127.0.0.1:9080/auth'; const settings = { username: 'admin', password: 'admin', grant_type: 'password', client_id: 'admin-cli' }; let kca = keycloakTokenRequest(baseUrl, settings); kca.catch((err) => { t.equal(err.code, 'ECONNREFUSED', 'should have a connection refused error code'); t.end(); }); });