signup-e2e

This commit is contained in:
Untone 2024-07-31 00:52:25 +03:00
parent ae4ec7b6b7
commit 8db9f4c93f

View File

@ -6,6 +6,7 @@ import { type Page, expect, test } from '@playwright/test'
let context: any let context: any
let page: Page let page: Page
/* Global starting test config */ /* Global starting test config */
function httpsGet(url: string): Promise<void> { function httpsGet(url: string): Promise<void> {
@ -43,6 +44,7 @@ async function waitForServer(url: string, timeout = 150000) {
} }
throw new Error(`Server at ${url} did not start within ${timeout} ms`) throw new Error(`Server at ${url} did not start within ${timeout} ms`)
} }
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))
@ -72,37 +74,54 @@ function generateRandomString(length = 10) {
return result return result
} }
const randomstring = generateRandomString(4)
test('Sign up', async ({ page }) => {
await page.goto('/')
/* test.setTimeout(80000); */
await page.getByRole('link', { name: 'Войти' }).click()
await page.getByRole('link', { name: 'У меня еще нет аккаунта'}).click()
await page.getByPlaceholder('Имя и фамилия').click()
await page.getByPlaceholder('Имя и фамилия').fill('Тестируем Разработку')
await page.getByPlaceholder('Почта').click()
await page.getByPlaceholder('Почта').fill(`guests+${randomstring}@discours.io`)
await page.getByPlaceholder('Пароль').click()
await page.getByPlaceholder('Пароль').fill('Gue$tP@ss')
await page.getByRole('button', { name: 'Присоединиться' }).click()
})
test.beforeEach(async ({ page }) => { test.beforeEach(async ({ page }) => {
await page.goto('/') await page.goto('/')
/* test.setTimeout(80000); */ /* test.setTimeout(80000); */
await page.getByRole('link', { name: 'Войти' }).click() await page.getByRole('link', { name: 'Войти' }).click()
await page.getByPlaceholder('Почта').click() await page.getByPlaceholder('Почта').click()
await page.getByPlaceholder('Почта').fill('guests@discours.io') await page.getByPlaceholder('Почта').fill(`guests+${randomstring}@discours.io`)
await page.getByPlaceholder('Пароль').click() await page.getByPlaceholder('Пароль').click()
await page.getByPlaceholder('Пароль').fill('Gue$tP@ss') await page.getByPlaceholder('Пароль').fill('Gue$tP@ss')
await page.getByRole('button', { name: 'Войти' }).click() await page.getByRole('button', { name: 'Войти' }).click()
}) })
test.describe('User Actions', () => { test.describe('Author Actions', () => {
test('User sandwitch menu', async ({ page }) => { test('Author sandwitch menu', async ({ page }) => {
await page.getByRole('button', { name: 'Т.Р' }).click() await page.getByRole('button', { name: 'Т.Р.' }).click()
await expect(page.getByRole('link', { name: 'Профиль' })).toBeVisible() await expect(page.getByRole('link', { name: 'Профиль' })).toBeVisible()
await page.getByRole('button', { name: 'Т.Р' }).click() await page.getByRole('button', { name: 'Т.Р.' }).click()
}) })
test('Follow user', async ({ page }) => { test('Follow author', async ({ page }) => {
await page.getByRole('link', { name: 'авторы', exact: true }).click() await page.getByRole('link', { name: 'авторы', exact: true }).click()
await page.getByRole('link', { name: 'Дискурс На сайте c 16 июня' }).click() await page.getByRole('link', { name: 'Дискурс На сайте c 16 июня' }).click()
await page.getByRole('button', { name: 'Подписаться' }).click() await page.getByRole('button', { name: 'Подписаться' }).click()
await expect(page.getByRole('main').getByRole('button', { name: 'Вы подписаны' })).toBeVisible() await expect(page.getByRole('main').getByRole('button', { name: 'Вы подписаны' })).toBeVisible()
}) })
test('Unfollow user', async ({ page }) => { test('Unfollow author', async ({ page }) => {
await page.getByRole('link', { name: 'авторы', exact: true }).click() await page.getByRole('link', { name: 'авторы', exact: true }).click()
await page.getByRole('link', { name: 'Дискурс На сайте c 16 июня' }).click() await page.getByRole('link', { name: 'Дискурс На сайте c 16 июня' }).click()
await page.getByRole('button', { name: 'Вы подписаны' }).click() await page.getByRole('button', { name: 'Вы подписаны' }).click()
await expect(page.getByRole('main').getByRole('button', { name: 'Подписаться' })).toBeVisible() await expect(page.getByRole('main').getByRole('button', { name: 'Подписаться' })).toBeVisible()
}) })
test('Change user data', async ({ page }) => { test('Change author profile', async ({ page }) => {
await page.getByRole('button', { name: 'Т.Р' }).click() await page.getByRole('button', { name: 'Т.Р.' }).click()
await page.getByRole('link', { name: 'Профиль' }).click() await page.getByRole('link', { name: 'Профиль' }).click()
await page.getByRole('button', { name: 'Редактировать профиль' }).click() await page.getByRole('button', { name: 'Редактировать профиль' }).click()
await page.locator('.tiptap').click() await page.locator('.tiptap').click()