leaky-ships/leaky-ships/__tests__/auth.js

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}'`)
})
})