mirror of
https://github.com/Sosokker/B2D-Ventures.git
synced 2025-12-20 06:24:06 +01:00
Update upload file
This commit is contained in:
parent
578cff2507
commit
99f87360be
27
tests/helpers/dropdownUtils.ts
Normal file
27
tests/helpers/dropdownUtils.ts
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
// dropdownUtils.ts
|
||||||
|
import { Page, Locator } from '@playwright/test';
|
||||||
|
|
||||||
|
export const selectFirstOption = async (page: Page, triggerLocator: Locator) => {
|
||||||
|
let selected = false
|
||||||
|
while (!selected) {
|
||||||
|
try {
|
||||||
|
await triggerLocator.hover();
|
||||||
|
await triggerLocator.click({ force: true });
|
||||||
|
|
||||||
|
// Select the first available option
|
||||||
|
const firstOption = page.getByRole("option").first();
|
||||||
|
await firstOption.waitFor({ state: 'visible', timeout: 1000 });
|
||||||
|
|
||||||
|
// Retrieve and log the text content of the first option
|
||||||
|
const optionText = await firstOption.textContent();
|
||||||
|
console.log(`${optionText}`);
|
||||||
|
await firstOption.click();
|
||||||
|
console.log("Selected.");
|
||||||
|
|
||||||
|
selected = true;
|
||||||
|
} catch (error) {
|
||||||
|
console.log("Retrying as the combobox disappeared.");
|
||||||
|
await page.waitForTimeout(100);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
BIN
tests/mockup/1x1.png
Normal file
BIN
tests/mockup/1x1.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 95 B |
@ -1,51 +1,35 @@
|
|||||||
import { test, Locator, Page } from '@playwright/test';
|
import { test } from '@playwright/test';
|
||||||
|
import { selectFirstOption } from './helpers/dropdownUtils';
|
||||||
// Helper function to handle dropdown selection with retry mechanism, automatically selecting the first option
|
import path from 'path';
|
||||||
const selectFirstOption = async (page: Page, triggerLocator: Locator) => {
|
|
||||||
|
|
||||||
try {
|
|
||||||
await triggerLocator.hover();
|
|
||||||
await triggerLocator.click({ force: true });
|
|
||||||
|
|
||||||
// Select the first available option
|
|
||||||
const firstOption = page.getByRole("option").first();
|
|
||||||
await firstOption.waitFor({ state: 'visible', timeout: 1000 });
|
|
||||||
await firstOption.click();
|
|
||||||
console.log("First option selected.");
|
|
||||||
|
|
||||||
} catch (error) {
|
|
||||||
console.log("Retrying as the combobox disappeared...");
|
|
||||||
await page.waitForTimeout(100);
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
test('test', async ({ page }) => {
|
test('test', async ({ page }) => {
|
||||||
await page.goto("http://127.0.0.1:3000/");
|
await page.goto("http://127.0.0.1:3000/");
|
||||||
await page.getByRole('button', { name: 'Projects' }).hover();
|
await page.getByRole('button', { name: 'Projects' }).hover();
|
||||||
await page.getByRole('link', { name: 'Projects Start your new' }).click();
|
await page.getByRole('link', { name: 'Projects Start your new' }).click();
|
||||||
|
|
||||||
await page.locator('#projectName').fill('DummyTester');
|
const projectName = page.locator('#projectName')
|
||||||
await page.locator('#projectName').fill('DummyTester');
|
await projectName.pressSequentially('DummyTester');
|
||||||
|
await projectName.click();
|
||||||
|
|
||||||
|
const img = path.join(__dirname, 'mockup', '1x1.png');
|
||||||
|
await page.locator('#projectLogo').click();
|
||||||
|
await page.locator('#projectLogo').setInputFiles(img);
|
||||||
|
await page.locator('#projectPhotos').click();
|
||||||
|
await page.locator('#projectPhotos').setInputFiles(img);
|
||||||
|
|
||||||
// Select first option in 'Select a Project type'
|
|
||||||
const projectTypeButton = page.locator('button').filter({ hasText: 'Select a Project type' });
|
const projectTypeButton = page.locator('button').filter({ hasText: 'Select a Project type' });
|
||||||
await selectFirstOption(page, projectTypeButton);
|
await selectFirstOption(page, projectTypeButton);
|
||||||
|
|
||||||
await page.locator('#shortDescription').fill('0123456789');
|
await page.locator('#shortDescription').fill('0123456789');
|
||||||
await page.getByPlaceholder('https:// ').fill('https://www.google.com/');
|
await page.getByPlaceholder('https:// ').fill('https://www.test.md');
|
||||||
await page.getByPlaceholder('$ 500').fill('499');
|
await page.getByPlaceholder('$ 500').fill('499');
|
||||||
await page.getByPlaceholder('$ 1,000,000').fill('99999999');
|
await page.getByPlaceholder('$ 1,000,000').fill('99999999');
|
||||||
await page.locator('#deadline').fill('2024-11-29T21:19');
|
await page.locator('#deadline').fill('2024-11-29T21:19');
|
||||||
|
|
||||||
// Log the text content of the second combobox
|
|
||||||
const tag = page.getByRole('combobox').nth(1);
|
const tag = page.getByRole('combobox').nth(1);
|
||||||
const tagText = await tag.textContent();
|
|
||||||
console.log('Tag text:', tagText);
|
|
||||||
|
|
||||||
// Select first option in the tag combobox
|
|
||||||
await selectFirstOption(page, tag);
|
await selectFirstOption(page, tag);
|
||||||
|
|
||||||
// Submit the form
|
await projectName.pressSequentially('1234');
|
||||||
|
|
||||||
await page.getByRole('button', { name: 'Submit application' }).click();
|
await page.getByRole('button', { name: 'Submit application' }).click();
|
||||||
});
|
});
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user