feat: playwright tests withability tio test running or not server not lonly in localhost mode

This commit is contained in:
Stepan Vladovskiy 2024-07-04 00:29:23 +00:00
parent bd4aa9c0ac
commit 49d6f17779
6 changed files with 12 additions and 62 deletions

View File

@ -2,6 +2,8 @@
import https from 'node:https' import https from 'node:https'
import { type Page, expect, test } from '@playwright/test' import { type Page, expect, test } from '@playwright/test'
const baseHost = process.env.BASE_URL || 'https://localhost:3000'
/* Global starting test config */ /* Global starting test config */
let page: Page let page: Page
@ -44,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) {
test.beforeAll(async ({ browser }) => { test.beforeAll(async ({ browser }) => {
console.log('Waiting for the server to start...') console.log('Waiting for the server to start...')
await new Promise((resolve) => setTimeout(resolve, 5000)) await new Promise((resolve) => setTimeout(resolve, 5000))
const baseURL = 'https://localhost:3000' const baseURL = `${baseHost}`
await waitForServer(baseURL) await waitForServer(baseURL)
page = await browser.newPage() page = await browser.newPage()
test.setTimeout(150000) test.setTimeout(150000)

View File

@ -2,6 +2,8 @@
import https from 'node:https' import https from 'node:https'
import { type Page, expect, test } from '@playwright/test' import { type Page, expect, test } from '@playwright/test'
const baseHost = process.env.BASE_URL || 'https://localhost:3000'
/* Global starting test config */ /* Global starting test config */
let page: Page let page: Page
@ -44,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) {
test.beforeAll(async ({ browser }) => { test.beforeAll(async ({ browser }) => {
console.log('Waiting for the server to start...') console.log('Waiting for the server to start...')
await new Promise((resolve) => setTimeout(resolve, 5000)) await new Promise((resolve) => setTimeout(resolve, 5000))
const baseURL = 'https://localhost:3000' const baseURL = `${baseHost}`
await waitForServer(baseURL) await waitForServer(baseURL)
page = await browser.newPage() page = await browser.newPage()
test.setTimeout(150000) test.setTimeout(150000)

View File

@ -2,6 +2,8 @@
import https from 'node:https' import https from 'node:https'
import { type Page, expect, test } from '@playwright/test' import { type Page, expect, test } from '@playwright/test'
const baseHost = process.env.BASE_URL || 'https://localhost:3000'
// biome-ignore lint/suspicious/noExplicitAny: <explanation> // biome-ignore lint/suspicious/noExplicitAny: <explanation>
let context: any let context: any
let page: Page let page: Page
@ -46,7 +48,7 @@ async function waitForServer(url: string, timeout = 150000) {
test.beforeAll(async ({ browser }) => { test.beforeAll(async ({ browser }) => {
console.log('Waiting for the server to start...') console.log('Waiting for the server to start...')
await new Promise((resolve) => setTimeout(resolve, 5000)) await new Promise((resolve) => setTimeout(resolve, 5000))
const baseURL = 'https://localhost:3000' const baseURL = `${baseHost}`
await waitForServer(baseURL) await waitForServer(baseURL)
context = await browser.newContext() context = await browser.newContext()
page = await context.newPage() page = await context.newPage()

View File

@ -1,21 +0,0 @@
import { expect, test } from '@playwright/test'
const baseHost = process.env.BASE_HOST || 'https://localhost:3000'
const pagesTitles: { [key: string]: RegExp } = {
'/': /Дискурс/,
'/feed': /Лента/,
'/edit/new': /Выберите тип публикации/,
'/guide/support': /Поддержите Дискурс/,
'/author': /Авторы/,
'/topic': /Темы и сюжеты/,
'/inbox': /Входящие/
}
Object.keys(pagesTitles).forEach((res: string) => {
test(`страница ${res}`, async ({ page }) => {
await page.goto(`${baseHost}${res}`)
const title = pagesTitles[res]
await expect(page).toHaveTitle(title)
})
})

View File

@ -1,37 +0,0 @@
import { chromium } from 'playwright'
;(async () => {
const browser = await chromium.launch()
const context = await browser.newContext()
// Define the URLs to visit
const pagesToVisit = [
'https://localhost:3000/',
'https://localhost:3000/feed',
'https://localhost:3000/edit/new',
'https://localhost:3000/guide/support',
'https://localhost:3000/author',
'https://localhost:3000/topic',
'https://localhost:3000/inbox'
]
// Loop through the pages and visit each one
for (const pageUrl of pagesToVisit) {
const page = await context.newPage()
// Log a message before visiting the page
console.log(`Visiting page: ${pageUrl}`)
await page.goto(pageUrl)
// Add your test assertions here if needed
// Log a message after visiting the page
console.log(`Finished visiting page: ${pageUrl}`)
// Close the page before moving to the next one
await page.close()
}
// Close the browser
await browser.close()
})()

View File

@ -2,6 +2,8 @@
import https from 'node:https' import https from 'node:https'
import { type Page, expect, test } from '@playwright/test' import { type Page, expect, test } from '@playwright/test'
const baseHost = process.env.BASE_URL || 'https://localhost:3000'
/* Global starting test config */ /* Global starting test config */
let page: Page let page: Page
@ -44,7 +46,7 @@ async function waitForServer(url: string, timeout = 150000) {
test.beforeAll(async ({ browser }) => { test.beforeAll(async ({ browser }) => {
console.log('Waiting for the server to start...') console.log('Waiting for the server to start...')
await new Promise((resolve) => setTimeout(resolve, 5000)) await new Promise((resolve) => setTimeout(resolve, 5000))
const baseURL = 'https://localhost:3000' const baseURL = `${baseHost}`
await waitForServer(baseURL) await waitForServer(baseURL)
page = await browser.newPage() page = await browser.newPage()
test.setTimeout(150000) test.setTimeout(150000)