Skip to content

Commit

Permalink
Update onPageLoad sample with initialize poller
Browse files Browse the repository at this point in the history
  • Loading branch information
hectormmg committed Jul 19, 2023
1 parent 377a10c commit 9933c50
Show file tree
Hide file tree
Showing 3 changed files with 55 additions and 20 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,18 @@ let accountId = "";
*/
const myMSALObj = new msal.PublicClientApplication(msalConfig);

// Register Callbacks for Redirect flow
myMSALObj.handleRedirectPromise().then(handleResponse).catch((error) => {
console.log(error);
myMSALObj.initialize().then(() => {
setInitializedFlagTrue(); // Used as a flag in the test to ensure that MSAL has been initialized
// Register Callbacks for Redirect flow
myMSALObj.handleRedirectPromise().then(handleResponse).catch((error) => {
console.log(error);
});
});

function setInitializedFlagTrue() {
document.getElementById("pca-initialized").innerHTML = "true";
};

function handleResponse(resp) {
if (resp !== null) {
accountId = resp.account.homeAccountId;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,9 @@ <h5 class="card-title" id="WelcomeMessage">Please sign-in to see your profile an
</div>
<br>
<br>
<div hidden id="pca-initialized" >
false
</div>

<!-- importing bootstrap.js and supporting js libraries -->
<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
import * as puppeteer from "puppeteer";
import {
Screenshot,
createFolder,
setupCredentials,
enterCredentials,
import {
Screenshot,
createFolder,
setupCredentials,
enterCredentials,
ONE_SECOND_IN_MS,
getBrowser,
getHomeUrl
getBrowser,
getHomeUrl,
pcaInitializedPoller,
} from "e2e-test-utils/src/TestUtils";
import { BrowserCacheUtils } from "e2e-test-utils/src/BrowserCacheTestUtils";
import { LabApiQueryParams } from "e2e-test-utils/src/LabApiQueryParams";
Expand All @@ -27,12 +28,17 @@ describe("On Page Load tests", function () {

const labApiParams: LabApiQueryParams = {
azureEnvironment: AzureEnvironments.CLOUD,
appType: AppTypes.CLOUD
appType: AppTypes.CLOUD,
};

const labClient = new LabClient();
const envResponse = await labClient.getVarsByCloudEnvironment(labApiParams);
[username, accountPwd] = await setupCredentials(envResponse[0], labClient);
const envResponse = await labClient.getVarsByCloudEnvironment(
labApiParams
);
[username, accountPwd] = await setupCredentials(
envResponse[0],
labClient
);
});

let context: puppeteer.BrowserContext;
Expand All @@ -41,8 +47,9 @@ describe("On Page Load tests", function () {
beforeEach(async () => {
context = await browser.createIncognitoBrowserContext();
page = await context.newPage();
page.setDefaultTimeout(ONE_SECOND_IN_MS*5);
page.setDefaultTimeout(ONE_SECOND_IN_MS * 5);
BrowserCache = new BrowserCacheUtils(page, "sessionStorage");
await pcaInitializedPoller(page, 5000);
});

afterEach(async () => {
Expand All @@ -57,7 +64,9 @@ describe("On Page Load tests", function () {
it("Performs loginRedirect on page load", async () => {
await page.goto(sampleHomeUrl);
const testName = "redirectBaseCase";
const screenshot = new Screenshot(`${SCREENSHOT_BASE_FOLDER_NAME}/${testName}`);
const screenshot = new Screenshot(
`${SCREENSHOT_BASE_FOLDER_NAME}/${testName}`
);
// Home Page
await screenshot.takeScreenshot(page, "samplePageInit");
// Enter credentials
Expand All @@ -70,16 +79,25 @@ describe("On Page Load tests", function () {
expect(tokenStore.idTokens).toHaveLength(1);
expect(tokenStore.accessTokens).toHaveLength(1);
expect(tokenStore.refreshTokens).toHaveLength(1);
expect(await BrowserCache.getAccountFromCache(tokenStore.idTokens[0])).toBeDefined();
expect(await BrowserCache.accessTokenForScopesExists(tokenStore.accessTokens, ["openid", "profile", "user.read"])).toBeTruthy();
expect(
await BrowserCache.getAccountFromCache(tokenStore.idTokens[0])
).toBeDefined();
expect(
await BrowserCache.accessTokenForScopesExists(
tokenStore.accessTokens,
["openid", "profile", "user.read"]
)
).toBeTruthy();
const storage = await BrowserCache.getWindowStorage();
expect(Object.keys(storage).length).toEqual(7);
}, 60000);

it("Performs loginRedirect on page load from a page other than redirectUri", async () => {
await page.goto(sampleHomeUrl + "?testPage");
const testName = "navigateToLoginRequestUrl";
const screenshot = new Screenshot(`${SCREENSHOT_BASE_FOLDER_NAME}/${testName}`);
const screenshot = new Screenshot(
`${SCREENSHOT_BASE_FOLDER_NAME}/${testName}`
);
// Home Page
await screenshot.takeScreenshot(page, "samplePageInit");
// Enter credentials
Expand All @@ -92,8 +110,15 @@ describe("On Page Load tests", function () {
expect(tokenStore.idTokens).toHaveLength(1);
expect(tokenStore.accessTokens).toHaveLength(1);
expect(tokenStore.refreshTokens).toHaveLength(1);
expect(await BrowserCache.getAccountFromCache(tokenStore.idTokens[0])).toBeDefined();
expect(await BrowserCache.accessTokenForScopesExists(tokenStore.accessTokens, ["openid", "profile", "user.read"])).toBeTruthy();
expect(
await BrowserCache.getAccountFromCache(tokenStore.idTokens[0])
).toBeDefined();
expect(
await BrowserCache.accessTokenForScopesExists(
tokenStore.accessTokens,
["openid", "profile", "user.read"]
)
).toBeTruthy();
const storage = await BrowserCache.getWindowStorage();
expect(Object.keys(storage).length).toEqual(7);
}, 60000);
Expand Down

0 comments on commit 9933c50

Please sign in to comment.