From 084fb09971f4c15428989beb1f814bb06a997d96 Mon Sep 17 00:00:00 2001 From: Jose Olarte III Date: Fri, 9 Aug 2024 23:04:25 +0800 Subject: [PATCH] IN-PROGRESS: create 10 projects --- test-playwright/25-create-project-x10.spec.ts | 66 +++++++++++++++++++ 1 file changed, 66 insertions(+) create mode 100644 test-playwright/25-create-project-x10.spec.ts diff --git a/test-playwright/25-create-project-x10.spec.ts b/test-playwright/25-create-project-x10.spec.ts new file mode 100644 index 000000000..c7d11bd37 --- /dev/null +++ b/test-playwright/25-create-project-x10.spec.ts @@ -0,0 +1,66 @@ +import { test, expect } from '@playwright/test'; +import { importUser } from './testUtils'; + +// Function to generate a random string of specified length +function generateRandomString(length) { + return Math.random().toString(36).substring(2, 2 + length); +} + +// Function to create an array of unique strings +function createUniqueStringsArray(count) { + const stringsArray = []; + const stringLength = 16; + + for (let i = 0; i < count; i++) { + let randomString = generateRandomString(stringLength); + stringsArray.push(randomString); + } + + return stringsArray; +} + +test('Create 10 new projects, then search for them', async ({ page }) => { + const projectCount = 10; + + // Standard texts + const standardTitle = "Idea "; + const standardDescription = "Description of Idea "; + + // Title and description arrays + const finalTitles = []; + const finalDescriptions = []; + + // Create an array of unique strings + const uniqueStrings = createUniqueStringsArray(projectCount); + + // Example: Fill the text field with each string in the array + for (let i = 0; i < projectCount; i++) { + let loopTitle = standardTitle + uniqueStrings[i]; + finalTitles.push(loopTitle); + let loopDescription = standardDescription + uniqueStrings[i]; + finalDescriptions.push(loopDescription); + } + + // Import user 00 + await importUser(page, '00'); + + // Pause for 5 seconds + await page.waitForTimeout(5000); // I have to wait, otherwise the (+) button to add a new project doesn't appear + + // Create new projects + for (let i = 0; i < projectCount; i++) { + await page.goto('./projects'); + await page.getByRole('link', { name: 'Projects', exact: true }).click(); + await page.getByRole('button').click(); + await page.getByPlaceholder('Idea Name').fill(finalTitles[i]); // Add random suffix + await page.getByPlaceholder('Description').fill(finalDescriptions[i]); + await page.getByPlaceholder('Website').fill('https://example.com'); + await page.getByPlaceholder('Start Date').fill('2025-12-01'); + await page.getByPlaceholder('Start Time').fill('12:00'); + await page.getByRole('button', { name: 'Save Project' }).click(); + + // Check texts + await expect(page.locator('h2')).toContainText(finalTitles[i]); + await expect(page.locator('#Content')).toContainText(finalDescriptions[i]); + } +}); \ No newline at end of file