-
Notifications
You must be signed in to change notification settings - Fork 1
/
login.js
91 lines (78 loc) · 2.28 KB
/
login.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
import { browser } from 'k6/browser';
import { EMAIL, PASSWORD } from './credentials.js';
import { sleep } from 'k6';
export const options = {
scenarios: {
ui: {
executor: 'constant-vus',
vus: 1, // number of virtual users (processes)
duration: '20s', // how long to run the function below
options: {
browser: {
type: 'chromium',
},
},
},
},
thresholds: {
checks: ['rate==0.7'],
},
};
export default async function () {
///////////
// SETUP //
///////////
const LOCAL = 'https://aced-training.compbio.ohsu.edu:3010/';
const STAGING = 'https://staging.aced-idp.org/';
const DEV = 'https://development.aced-idp.org/';
const PROD = 'https://aced-idp.org/';
// create context
const context = await browser.newContext();
const page = await context.newPage();
/////////////
// HELPERS //
/////////////
// wait to render before clicking something
async function clickButton(page, selector) {
// await page.locator(selector).click();
await page.waitForSelector(selector);
await page.locator(selector).click();;
}
// enter info for microsoft login
async function microsoftInputInfo(page, selector, info){
// Wait for navigation and fill in email
await page.waitForSelector(selector);
await page.locator(selector).type(info);
// click nextd
await microsoftClickNext(page);
}
// click next in microsoft login
async function microsoftClickNext(page) {
await page.waitForSelector('#idSIButton9');
await page.locator('#idSIButton9').click();
}
///////////////
// TEST LOOP //
///////////////
try {
// load site
await page.goto(DEV);
console.log('~ navigated to the homepage ~');
// get to Microsoft login
await clickButton(page, '.flex.items-center[href="/Login"]');
console.log('~ navigated login page ~');
const microsoftSelector = '#Login-from-Microsoft'
await clickButton(page, microsoftSelector);
// microsoft credentials
await page.waitForNavigation();
await microsoftInputInfo(page, '#i0116', EMAIL)
sleep(1);
await microsoftInputInfo(page, '#i0118', PASSWORD)
sleep(1);
await microsoftClickNext(page);
console.log("~ login complete ~");
}
finally {
await page.close();
}
}