-
Notifications
You must be signed in to change notification settings - Fork 4
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
chore: add E2E test for Condition with select input
- Loading branch information
1 parent
3c26b95
commit 37021a9
Showing
2 changed files
with
153 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,82 @@ | ||
/** | ||
* WordPress dependencies | ||
*/ | ||
import { test, expect } from '@wordpress/e2e-test-utils-playwright'; | ||
import { addNewOptionInModal, enableConditionsInModal, fillFieldNameAndId, fillOptionNameAndValue, pickFieldTypeInModal, switchToConditionsModalTab } from '../utils'; | ||
|
||
test.describe( 'Conditions', () => { | ||
|
||
/*** | ||
* Create two select fields (with two options each) and one text field. Display the text field if the second option of the second select is selected. | ||
*/ | ||
test( 'conditions with Select input', async({ page, admin }) => { | ||
|
||
await admin.visitAdminPage('admin.php?page=ppom'); | ||
|
||
await page.getByRole('link', { name: 'Add New Group' }).click(); | ||
await page.getByRole('textbox').fill('Test Group Field with Select Conditions'); | ||
|
||
const randomNumber = Math.floor(Math.random() * 1000); | ||
const numOfInputFields = 2; | ||
|
||
for (let i = 1; i <= numOfInputFields; i++) { | ||
await page.getByRole('button', { name: 'Add field' }).click(); | ||
await pickFieldTypeInModal( page, 'select' ); | ||
|
||
await fillFieldNameAndId( page, i, `Select Input ${randomNumber + i - 1}`, `select_test_${randomNumber + i - 1}`); | ||
|
||
await page.locator(`#ppom_field_model_${i}`).getByText('Add Options', { exact: true }).click(); | ||
|
||
await fillOptionNameAndValue(page, i, 0, 'Option 1', 'option_1'); | ||
await addNewOptionInModal(page, i); | ||
await fillOptionNameAndValue(page, i, 1, 'Option 2', 'option_2'); | ||
|
||
await page.getByRole('button', { name: 'Add Field', exact: true }).click(); | ||
} | ||
|
||
await page.getByRole('button', { name: 'Add field' }).click(); | ||
await pickFieldTypeInModal( page, 'text' ); | ||
await fillFieldNameAndId( page, numOfInputFields + 1, 'Output', 'output_test'); | ||
|
||
await page.getByRole('button', { name: 'Save Fields' }).click(); | ||
await page.waitForLoadState('networkidle'); | ||
await page.reload(); | ||
|
||
await page.locator(`#ppom_sort_id_${numOfInputFields + 1} .ppom-edit-field`).click(); | ||
|
||
await switchToConditionsModalTab( page, numOfInputFields + 1); | ||
await enableConditionsInModal(page, numOfInputFields + 1); | ||
|
||
await page.locator(`select[name="ppom\\[${numOfInputFields + 1}\\]\\[conditions\\]\\[rules\\]\\[0\\]\\[elements\\]"]`).selectOption({ index: 1 }); | ||
|
||
await page.locator(`select[name="ppom\\[${numOfInputFields + 1}\\]\\[conditions\\]\\[rules\\]\\[0\\]\\[operators\\]"]`).selectOption({ index: 0 }); | ||
|
||
await page.locator(`select[name="ppom\\[${numOfInputFields + 1}\\]\\[conditions\\]\\[rules\\]\\[0\\]\\[element_values\\]"]`).selectOption({ index: 1 }); | ||
|
||
await page.getByRole('button', { name: 'Update Field', exact: true }).click(); | ||
await page.getByRole('button', { name: 'Save Fields' }).click(); | ||
|
||
await page.waitForLoadState('networkidle'); | ||
|
||
await page.reload(); | ||
await page.getByText('Attach to Products').click({ force: true }); | ||
await page.waitForLoadState('networkidle'); | ||
|
||
const productSelector = page.locator('select[name="ppom-attach-to-products\\[\\]"]'); | ||
await page.waitForLoadState('networkidle'); | ||
|
||
await productSelector.selectOption({ index: 0 }); | ||
const selectedOption = await productSelector.inputValue(); | ||
console.log('Selected option value:', selectedOption); | ||
await page.getByRole('button', { name: 'Save', exact: true }).click(); | ||
|
||
await page.waitForLoadState('networkidle'); | ||
await page.goto(`/?p=${selectedOption}`); | ||
|
||
await expect( page.getByLabel('Output') ).toBeHidden(); | ||
|
||
await page.locator(`select[name="ppom[fields][select_test_${randomNumber + 1 }]"]`).selectOption({ index: 1 }); | ||
|
||
await expect( page.getByLabel('Output') ).toBeVisible(); | ||
}); | ||
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters