52 lines
1.7 KiB
JavaScript
52 lines
1.7 KiB
JavaScript
describe("Check Azure AD auth", () => {
|
|
const callbackUrl = "https://leaky-ships.mal-noh.de/"
|
|
|
|
it("Login process...", async () => {
|
|
let redirected = false
|
|
let thirdParty = false
|
|
page.on("framenavigated", (frame) => {
|
|
if (redirected) return
|
|
const frameUrl = frame.url()
|
|
// console.log("Window Location Changed:", frameUrl)
|
|
if (frameUrl === callbackUrl) redirected = true
|
|
})
|
|
try {
|
|
await page.goto("https://leaky-ships.mal-noh.de/signin")
|
|
await page.waitForSelector("#microsoft")
|
|
await page.click("#microsoft")
|
|
|
|
thirdParty = true
|
|
|
|
await page.waitForNavigation()
|
|
|
|
await page.waitForSelector('input[type="email"]')
|
|
const emailInput = await page.$('input[type="email"]')
|
|
await emailInput.type(process.env.AUTH_EMAIL)
|
|
|
|
await page.waitForSelector('input[value="Next"]')
|
|
const nextInput = await page.$('input[value="Next"]')
|
|
await nextInput.click()
|
|
|
|
await page.waitForSelector('input[type="password"]')
|
|
const passwordInput = await page.$('input[type="password"]')
|
|
await passwordInput.type(process.env.AUTH_PW)
|
|
|
|
await page.waitForSelector('input[value="Sign in"]')
|
|
const signinInput = await page.$('input[value="Sign in"]')
|
|
await signinInput.click()
|
|
|
|
await page.waitForSelector('input[value="No"]')
|
|
const noInput = await page.$('input[value="No"]')
|
|
await noInput.click()
|
|
|
|
await page.waitForFunction(`window.location.href === '${callbackUrl}'`)
|
|
} catch (e) {
|
|
if (!redirected || thirdParty) throw e
|
|
}
|
|
}, 15000)
|
|
|
|
it("Is logged in", async () => {
|
|
await page.goto("https://leaky-ships.mal-noh.de/signin")
|
|
await page.waitForFunction(`window.location.href === '${callbackUrl}'`)
|
|
})
|
|
})
|