2
0

chore(e2e): 👷 Fix e2e pipeline

This commit is contained in:
Baptiste Arnaud
2022-01-28 17:57:14 +01:00
parent 65209c2638
commit 02bd2b94ba
20 changed files with 967 additions and 911 deletions

View File

@ -1,31 +1,43 @@
import { chromium, FullConfig, Page } from '@playwright/test'
import { setupDatabase, teardownDatabase, user } from './services/database'
import { setupDatabase, teardownDatabase } from './services/database'
// eslint-disable-next-line @typescript-eslint/no-var-requires
require('dotenv').config({ path: '.env' })
async function globalSetup(config: FullConfig) {
const { baseURL } = config.projects[0].use
if (!baseURL) throw new Error('baseURL is missing')
await teardownDatabase()
await setupDatabase()
// Skip auth if debugging
if (process.env.PWDEBUG === '1') return
const browser = await chromium.launch()
const page = await browser.newPage()
await signIn(page, user.email)
await signIn(page)
await page.context().storageState({
path: './playwright/authenticatedState.json',
})
await setupDatabase(process.env.GITHUB_EMAIL as string)
}
const signIn = async (page: Page, email: string) => {
await page.goto('http://localhost:3000/api/auth/signin')
await page.fill('[placeholder="credentials\\@email\\.com"]', email)
await Promise.all([
page.waitForNavigation({ url: 'http://localhost:3000/typebots' }),
page.press('[placeholder="credentials\\@email\\.com"]', 'Enter'),
])
const signIn = async (page: Page) => {
if (!process.env.GITHUB_EMAIL || !process.env.GITHUB_PASSWORD)
throw new Error(
'GITHUB_USERNAME or GITHUB_PASSWORD are missing in the environment. They are required to log in.'
)
await page.goto(`${process.env.PLAYWRIGHT_BUILDER_TEST_BASE_URL}/signin`)
await page.click('text=Continue with GitHub')
await page.fill('input[name="login"]', process.env.GITHUB_EMAIL)
await page.fill('input[name="password"]', process.env.GITHUB_PASSWORD)
await page.press('input[name="password"]', 'Enter')
try {
await page.locator('text=Authorize baptisteArno').click({ timeout: 3000 })
} catch {
return
}
await page.waitForNavigation({
url: `${process.env.PLAYWRIGHT_BUILDER_TEST_BASE_URL}/typebots`,
})
}
export default globalSetup