From 000b25fb424a5a6adcb158834f7de482e35552b4 Mon Sep 17 00:00:00 2001 From: Thomas Conner Date: Fri, 6 Apr 2018 16:06:47 -0400 Subject: [PATCH] MLIBZ-2422: Add tests that check MIC redirectUri validation --- src/core/identity/mic.spec.js | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/core/identity/mic.spec.js b/src/core/identity/mic.spec.js index 1d57293a9..2e4c41bb4 100644 --- a/src/core/identity/mic.spec.js +++ b/src/core/identity/mic.spec.js @@ -4,7 +4,6 @@ import nock from 'nock'; import url from 'url'; import { MobileIdentityConnect, AuthorizationGrant } from './mic'; import { InsufficientCredentialsError, MobileIdentityConnectError, KinveyError } from '../errors'; -import { Client } from '../client'; import { randomString } from '../utils'; import { NetworkRack } from '../request'; import { NodeHttpMiddleware } from '../../node/http'; @@ -66,6 +65,36 @@ describe('MobileIdentityConnect', () => { describe('login()', () => { describe('AuthorizationGrant.AuthorizationCodeAPI', () => { + it('should fail if a redirect uri is not provided', () => { + const username = 'test'; + const password = 'test'; + const mic = new MobileIdentityConnect(); + return mic.login(null, AuthorizationGrant.AuthorizationCodeAPI, { username, password }) + .then(() => { + throw new Error('This test should fail'); + }) + .catch((error) => { + expect(error).toBeA(KinveyError); + expect(error.message).toEqual('A redirectUri is required and must be a string.'); + }); + }); + + it('should fail if redirect uri is not a string', () => { + it('should fail if a redirect uri is not provided', () => { + const username = 'test'; + const password = 'test'; + const mic = new MobileIdentityConnect(); + return mic.login({}, AuthorizationGrant.AuthorizationCodeAPI, { username, password }) + .then(() => { + throw new Error('This test should fail'); + }) + .catch((error) => { + expect(error).toBeA(KinveyError); + expect(error.message).toEqual('A redirectUri is required and must be a string.'); + }); + }); + }); + it('should fail with invalid credentials', () => { const tempLoginUriParts = url.parse('https://auth.kinvey.com/oauth/authenticate/f2cb888e651f400e8c05f8da6160bf12'); const username = 'test';