Skip to content

Commit 1100df7

Browse files
Create authFixture.ts
0 parents  commit 1100df7

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

authFixture.ts

+48
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
2+
// @ts-nocheck
3+
import { request, test as base } from '@playwright/test'
4+
import { User } from '../pageObjects/interfaces'
5+
import users from '../users.json'
6+
7+
export const test = base.extend({
8+
withUser: 'foo.bar',
9+
10+
storageState: async ({ withUser }, use) => {
11+
const state = await getAuthCookie(withUser)
12+
13+
await use(state)
14+
},
15+
})
16+
17+
async function getAuthCookie(withUser: string) {
18+
const user: User = users[withUser]
19+
const requestContext = await request.newContext()
20+
21+
const oktaPrimaryAuthResponse = await requestContext.post(`${process.env.OKTA_DOMAIN}/api/v1/authn`, {
22+
data: {
23+
username: user.email,
24+
password: user.password,
25+
warnBeforePasswordExpired: true,
26+
},
27+
})
28+
const oktaPrimaryAuthResponseBody = await oktaPrimaryAuthResponse.json()
29+
const oktaSessionToken = oktaPrimaryAuthResponseBody.sessionToken
30+
31+
const tokenParams = {
32+
response_type: 'token',
33+
scope: 'openid',
34+
state: 'TEST',
35+
nonce: 'TEST',
36+
client_id: process.env.OKTA_CLIENTID,
37+
redirect_uri: `${process.env.BASE_URL}/baz/login/callback`,
38+
sessionToken: oktaSessionToken,
39+
}
40+
41+
const oktaTokenResponse = await requestContext.get(`${process.env.OKTA_DOMAIN}/oauth2/default/v1/authorize`, {
42+
params: tokenParams,
43+
})
44+
45+
process.env.AUTH_TOKEN = oktaTokenResponse.url().split('access_token=')[1].split('&')[0]
46+
47+
return requestContext.storageState()
48+
}

0 commit comments

Comments
 (0)