test: picker tests pass

This commit is contained in:
Liam DeBeasi
2023-12-01 16:19:11 -05:00
parent 34ec94ffda
commit e933833763
4 changed files with 41 additions and 43 deletions

View File

@@ -16,22 +16,17 @@
<h1>Picker - a11y</h1>
<ion-picker>
<ion-picker-column color="tertiary" value="3"></ion-picker-column>
<ion-picker-column color="tertiary" value="3">
<ion-picker-column-option value="1" color="tertiary">First</ion-picker-column-option>
<ion-picker-column-option value="2" color="tertiary">Second</ion-picker-column-option>
<ion-picker-column-option value="3" color="tertiary">Third</ion-picker-column-option>
<ion-picker-column-option value="4" color="tertiary">Fourth</ion-picker-column-option>
<ion-picker-column-option value="5" color="tertiary">Fifth</ion-picker-column-option>
<ion-picker-column-option value="6" color="tertiary">Sixth</ion-picker-column-option>
<ion-picker-column-option value="7" color="tertiary">Seventh</ion-picker-column-option>
</ion-picker-column>
</ion-picker>
</ion-content>
<script>
const column = document.querySelector('ion-picker-column');
column.items = [
{ text: 'First', value: '1' },
{ text: 'Second', value: '2' },
{ text: 'Third', value: '3' },
{ text: 'Fourth', value: '4' },
{ text: 'Fifth', value: '5' },
{ text: 'Sixth', value: '6' },
{ text: 'Seventh', value: '7' },
];
</script>
</ion-app>
</body>
</html>

View File

@@ -111,10 +111,19 @@
console.log('Column change', ev.detail);
});
const setPickerColumn = (selector, items, value) => {
const picker = document.querySelector(selector);
const column = document.querySelector(selector);
picker.items = items;
picker.value = value;
items.forEach((item) => {
const option = document.createElement('ion-picker-column-option');
option.value = item.value;
option.textContent = item.text;
option.setAttribute('data-test-value', item.value);
column.appendChild(option);
});
column.value = value;
};
const modal = document.querySelector('ion-modal');

View File

@@ -9,11 +9,11 @@ configs({ directions: ['ltr'] }).forEach(({ title, screenshot, config }) => {
test('inline pickers should not have visual regression', async ({ page }) => {
await page.goto(`/src/components/picker/test/basic`, config);
const fullStack = page.locator('#inline button[data-value="full-stack"]');
const onion = page.locator('#inline button[data-value="onion"]');
const fullStack = page.locator('#inline ion-picker-column-option[data-test-value="full-stack"]');
const onion = page.locator('#inline ion-picker-column-option[data-test-value="onion"]');
await expect(fullStack).toHaveClass(/picker-item-active/);
await expect(onion).toHaveClass(/picker-item-active/);
await expect(fullStack).toHaveClass(/option-active/);
await expect(onion).toHaveClass(/option-active/);
await page.waitForChanges();
@@ -85,28 +85,21 @@ configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) =>
await page.setContent(
`
<ion-picker>
<ion-picker-column value="full-stack" id="first"></ion-picker-column>
<ion-picker-column value="onion" id="second"></ion-picker-column>
<ion-picker-column value="full-stack" id="first">
<ion-picker-column-option value="minified">Minified</ion-picker-column-option>
<ion-picker-column-option value="responsive">Responsive</ion-picker-column-option>
<ion-picker-column-option value="full-stack">Full Stack</ion-picker-column-option>
<ion-picker-column-option value="mobile-first">Mobile First</ion-picker-column-option>
<ion-picker-column-option value="serverless">Serverless</ion-picker-column-option>
</ion-picker-column>
<ion-picker-column value="onion" id="second">
<ion-picker-column-option value="tomato">Tomato</ion-picker-column-option>
<ion-picker-column-option value="avocado">Avocado</ion-picker-column-option>
<ion-picker-column-option value="onion">Onion</ion-picker-column-option>
<ion-picker-column-option value="potato">Potato</ion-picker-column-option>
<ion-picker-column-option value="artichoke">Artichoke</ion-picker-column-option>
</ion-picker-column>
</ion-picker>
<script>
const columns = document.querySelectorAll('ion-picker-column');
columns[0].items = [
{ text: 'Minified', value: 'minified' },
{ text: 'Responsive', value: 'responsive' },
{ text: 'Full Stack', value: 'full-stack' },
{ text: 'Mobile First', value: 'mobile-first' },
{ text: 'Serverless', value: 'serverless' },
]
columns[1].items = [
{ text: 'Tomato', value: 'tomato' },
{ text: 'Avocado', value: 'avocado' },
{ text: 'Onion', value: 'onion' },
{ text: 'Potato', value: 'potato' },
{ text: 'Artichoke', value: 'artichoke' },
];
</script>
`,
config
);

View File

@@ -5,8 +5,9 @@ import type { E2ELocator } from '@utils/test/playwright/page/utils/locator';
/**
* This behavior does not vary across modes/directions.
*/
// TODO FW-5580 fix this functionality
configs({ modes: ['ios'], directions: ['ltr'] }).forEach(({ title, config }) => {
test.describe(title('picker: keyboard entry'), () => {
test.describe.skip(title('picker: keyboard entry'), () => {
test('should scroll to and update the value prop for a single column', async ({ page }) => {
await page.setContent(
`