From 0ea6e839ac0382d810ea569abf36b2107d6478cd Mon Sep 17 00:00:00 2001 From: Saad Jutt Date: Wed, 8 Sep 2021 15:08:55 +0500 Subject: [PATCH] test: added for verifySasLogin --- src/auth/spec/verifySas9Login.spec.ts | 37 +++++++++++++++++++++++ src/auth/spec/verifySasViyaLogin.spec.ts | 38 ++++++++++++++++++++++++ src/auth/verifySasViyaLogin.ts | 2 +- 3 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 src/auth/spec/verifySas9Login.spec.ts create mode 100644 src/auth/spec/verifySasViyaLogin.spec.ts diff --git a/src/auth/spec/verifySas9Login.spec.ts b/src/auth/spec/verifySas9Login.spec.ts new file mode 100644 index 0000000..78f84fc --- /dev/null +++ b/src/auth/spec/verifySas9Login.spec.ts @@ -0,0 +1,37 @@ +/** + * @jest-environment jsdom + */ +import { verifySas9Login } from '../verifySas9Login' +import * as delayModule from '../../utils/delay' + +describe('verifySas9Login', () => { + const serverUrl = 'http://test-server.com' + + beforeAll(() => { + jest.mock('../../utils') + jest + .spyOn(delayModule, 'delay') + .mockImplementation(() => Promise.resolve({})) + }) + + it('should return isLoggedIn true by checking state of popup', async () => { + const popup = { + window: { + location: { href: serverUrl + `/SASLogon/home` }, + document: { body: { innerText: '

You have signed in.

' } } + } + } as unknown as Window + + await expect(verifySas9Login(popup)).resolves.toEqual({ + isLoggedIn: true + }) + }) + + it('should return isLoggedIn false if user closed popup, already', async () => { + const popup: Window = { closed: true } as unknown as Window + + await expect(verifySas9Login(popup)).resolves.toEqual({ + isLoggedIn: false + }) + }) +}) diff --git a/src/auth/spec/verifySasViyaLogin.spec.ts b/src/auth/spec/verifySasViyaLogin.spec.ts new file mode 100644 index 0000000..f0d1d7d --- /dev/null +++ b/src/auth/spec/verifySasViyaLogin.spec.ts @@ -0,0 +1,38 @@ +/** + * @jest-environment jsdom + */ +import { verifySasViyaLogin } from '../verifySasViyaLogin' +import * as delayModule from '../../utils/delay' + +describe('verifySasViyaLogin', () => { + const serverUrl = 'http://test-server.com' + + beforeAll(() => { + jest.mock('../../utils') + jest + .spyOn(delayModule, 'delay') + .mockImplementation(() => Promise.resolve({})) + document.cookie = encodeURIComponent('Current-User={"userId":"user-hash"}') + }) + + it('should return isLoggedIn true by checking state of popup', async () => { + const popup = { + window: { + location: { href: serverUrl + `/SASLogon/home` }, + document: { body: { innerText: '

You have signed in.

' } } + } + } as unknown as Window + + await expect(verifySasViyaLogin(popup)).resolves.toEqual({ + isLoggedIn: true + }) + }) + + it('should return isLoggedIn false if user closed popup, already', async () => { + const popup: Window = { closed: true } as unknown as Window + + await expect(verifySasViyaLogin(popup)).resolves.toEqual({ + isLoggedIn: false + }) + }) +}) diff --git a/src/auth/verifySasViyaLogin.ts b/src/auth/verifySasViyaLogin.ts index 6715ae9..b65cef0 100644 --- a/src/auth/verifySasViyaLogin.ts +++ b/src/auth/verifySasViyaLogin.ts @@ -19,7 +19,7 @@ export async function verifySasViyaLogin(loginPopup: Window): Promise<{ await delay(1000) if (loginPopup.closed) break isAuthorized = - !loginPopup.window.location.href.includes('SASLogon') || + loginPopup.window.location.href.includes('SASLogon') || loginPopup.window.document.body?.innerText?.includes( 'You have signed in.' )