diff --git a/src/app/pages/add-hub/add-hub.page.html b/src/app/pages/add-hub/add-hub.page.html index 060c5d84..ea68faec 100644 --- a/src/app/pages/add-hub/add-hub.page.html +++ b/src/app/pages/add-hub/add-hub.page.html @@ -30,7 +30,7 @@ - + diff --git a/tests/basic-user-flow.spec.ts b/tests/basic-user-flow.spec.ts index d78206ee..93392301 100644 --- a/tests/basic-user-flow.spec.ts +++ b/tests/basic-user-flow.spec.ts @@ -1,10 +1,23 @@ -import { test, expect } from '@playwright/test'; +import { test, expect, Page, BrowserContext } from '@playwright/test'; -test('create-profile-and-create-event', async ({ page, context }) => { - // Grant geolocation permission and set a default location - await context.grantPermissions(['geolocation']); - await context.setGeolocation({ latitude: 48.8566, longitude: 2.3522 }); // Paris coordinates - +test.describe.serial('basic user flow', () => { + let context: BrowserContext; + let page: Page; + + test.beforeAll(async ({ browser }) => { + context = await browser.newContext({ + permissions: ['geolocation'], + geolocation: { latitude: 48.8566, longitude: 2.3522 } + }); + page = await context.newPage(); + }); + + test.afterAll(async () => { + await page.close(); + await context.close(); + }); + +test('create-profile', async () => { // Generate unique email using Unix timestamp in milliseconds const timestamp = Date.now(); const uniqueEmail = `playwright_test_${timestamp}@email.com`; @@ -23,6 +36,10 @@ test('create-profile-and-create-event', async ({ page, context }) => { await page.locator('#ion-input-7').fill('playwright_test'); await page.getByRole('button', { name: 'Save' }).click(); await expect(page.locator('ion-tabs')).toContainText('playwright_test test'); +}); + +test('create-event', async () => { + await page.locator('#tab-button-home > .ios > .icon-inner > .ionicon').click(); await page.locator('ion-fab-button > .ios > .icon-inner > .ionicon').first().click(); await page.locator('circle').first().click(); @@ -47,4 +64,27 @@ test('create-profile-and-create-event', async ({ page, context }) => { await expect(page.locator('ion-card-title')).toContainText('playwright_test_event'); await page.waitForSelector('app-event-card img', { state: 'visible', timeout: 10000 }); await expect(page.locator('app-event-card img')).toBeVisible(); + +}); + +test('create-place', async () => { + await page.locator('#tab-button-home').getByRole('tab').click(); + await page.locator('#main').getByRole('button').first().click(); + await page.getByRole('button').nth(2).click(); + await page.getByRole('textbox', { name: '*' }).click(); + await page.getByRole('textbox', { name: '*' }).fill('playwright_test_place'); + await page.keyboard.press('Tab'); + await page.keyboard.type('Place Description'); + await page.getByTestId('location-input').click(); + await page.getByRole('searchbox', { name: 'search text' }).click(); + await page.getByRole('searchbox', { name: 'search text' }).fill('london'); + await page.waitForTimeout(500); + await page.getByText(/england/i).first().click({ force: true }); + await page.getByRole('button', { name: 'Select Location' }).click(); + await page.getByRole('button', { name: 'Upload Image' }).click(); + await page.getByRole('button', { name: 'Select Picture' }).click(); + await page.setInputFiles('input[type="file"]', 'resources/icon.png'); + await page.getByRole('button', { name: 'Create' }).click(); + await expect(page.locator('app-hub-card')).toContainText('playwright_test_place'); +}); }); \ No newline at end of file