Skip to content

Commit 5fd2c72

Browse files
committed
Tests changes
1 parent 1953bfb commit 5fd2c72

11 files changed

+219
-340
lines changed

__tests__/v2/RunWorkflowModal.test.js

Lines changed: 0 additions & 77 deletions
This file was deleted.

tests/utils.js

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,8 @@ export async function uploadFile(page, selectorText, fileName, data, parentFolde
6767
*/
6868
export async function selectSlimSelect(page, selector, optionValue, multiple = false) {
6969
await selector.click();
70-
const items = await page.getByRole('option').all();
70+
const dataId = await selector.getAttribute('data-id');
71+
const items = await page.locator(`.ss-content[data-id="${dataId}"]`).getByRole('option').all();
7172
let selectedItem = null;
7273
for (const item of items.reverse()) {
7374
const itemText = await item.innerText();
@@ -77,16 +78,14 @@ export async function selectSlimSelect(page, selector, optionValue, multiple = f
7778
}
7879
}
7980
expect(selectedItem).not.toBeNull();
80-
await /** @type {import('@playwright/test').Locator} */ (selectedItem).click();
81+
const item = /** @type {import('@playwright/test').Locator} */ (selectedItem);
82+
await item.click();
8183
if (multiple) {
8284
await expect(selector).toHaveText(new RegExp(`(${optionValue}$)|(^\\d+ selected$)`));
8385
} else {
8486
await expect(selector).toHaveText(optionValue);
8587
}
86-
await expect(page.getByRole('option', { name: optionValue, exact: true }).last()).toHaveAttribute(
87-
'aria-selected',
88-
'true'
89-
);
88+
await expect(item).toHaveAttribute('aria-selected', 'true');
9089
}
9190

9291
/**

tests/v2/images.spec.js

Lines changed: 15 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -108,30 +108,6 @@ test('Dataset images [v2]', async ({ page, project }) => {
108108
await searchImages(page, 1);
109109
});
110110

111-
await test.step('Set dataset filters', async () => {
112-
await expect(page.getByRole('row')).toHaveCount(7);
113-
const datasetFiltersBtn = page.getByText('Current selection').first();
114-
await expect(datasetFiltersBtn).toBeEnabled();
115-
await datasetFiltersBtn.click();
116-
await expect(datasetFiltersBtn).toBeEnabled();
117-
await expect(page.getByRole('row')).toHaveCount(7);
118-
await page.getByText('Current selection').click();
119-
await expect(page.getByRole('button', { name: 'Save' })).toBeDisabled();
120-
await selectSlimSelect(page, page.getByLabel('Selector for attribute k1'), 'v1');
121-
await page.getByRole('button', { name: 'Apply', exact: true }).click();
122-
await page.getByRole('button', { name: 'Save' }).click();
123-
await modal.waitFor();
124-
await modal.getByRole('button', { name: 'Confirm' }).click();
125-
await waitModalClosed(page);
126-
await expect(page.getByRole('button', { name: 'Apply', exact: true })).toBeDisabled();
127-
await expect(page.getByRole('button', { name: 'Reset', exact: true })).toBeDisabled();
128-
await expect(page.getByRole('row')).toHaveCount(3);
129-
const allImagesBtn = page.getByText('All images');
130-
await allImagesBtn.click();
131-
await expect(allImagesBtn).toBeEnabled();
132-
await expect(page.getByRole('row')).toHaveCount(7);
133-
});
134-
135111
await test.step('Edit image', async () => {
136112
await page.getByRole('row', { name: 'img2' }).getByRole('button', { name: 'Edit' }).click();
137113
await modal.waitFor();
@@ -157,14 +133,28 @@ test('Dataset images [v2]', async ({ page, project }) => {
157133
await page.getByRole('button', { name: 'Confirm' }).click();
158134
await expect(page.getByRole('row')).toHaveCount(6);
159135
});
136+
137+
await test.step('Add more images and test pagination', async () => {
138+
await createImage(page, `${randomPath}/img6`);
139+
await createImage(page, `${randomPath}/img7`);
140+
await createImage(page, `${randomPath}/img8`);
141+
await createImage(page, `${randomPath}/img9`);
142+
await createImage(page, `${randomPath}/img10`);
143+
await createImage(page, `${randomPath}/img11`);
144+
await createImage(page, `${randomPath}/img12`);
145+
await expect(page.getByText('Total results: 11')).toBeVisible();
146+
await expect(page.getByRole('row')).toHaveCount(12);
147+
await page.getByRole('button', { name: '2', exact: true }).click();
148+
await expect(page.getByRole('row')).toHaveCount(3);
149+
});
160150
});
161151

162152
/**
163153
* @param {import('@playwright/test').Page} page
164154
* @param {string} zarr_url
165155
* @param {(modal: import('@playwright/test').Locator) => Promise<void>} filtersFunction
166156
*/
167-
async function createImage(page, zarr_url, filtersFunction) {
157+
async function createImage(page, zarr_url, filtersFunction = async () => {}) {
168158
const newImageBtn = page.getByRole('button', { name: 'Add an image list entry' });
169159
await newImageBtn.waitFor();
170160
await newImageBtn.click();

tests/v2/run_workflow_image_list_visibility.spec.js

Lines changed: 0 additions & 73 deletions
This file was deleted.

tests/v2/run_workflow_images.spec.js

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { selectSlimSelect, waitModalClosed, waitPageLoading } from '../utils.js';
1+
import { waitModalClosed, waitPageLoading } from '../utils.js';
22
import { createImage } from './image_utils.js';
33
import { expect, test } from './workflow_fixture.js';
44

@@ -22,13 +22,9 @@ test('View images in run workflow modal', async ({ page, workflow }) => {
2222
await waitModalClosed(page);
2323
});
2424

25-
/** @type {string} */
26-
let datasetUrl;
27-
2825
await test.step('Open test dataset', async () => {
2926
await page.getByRole('link', { name: 'test-dataset' }).click();
3027
await page.waitForURL(/\/v2\/projects\/\d+\/datasets\/\d+/);
31-
datasetUrl = page.url();
3228
await expect(page.getByText('No entries in the image list yet')).toBeVisible();
3329
});
3430

@@ -66,30 +62,6 @@ test('View images in run workflow modal', async ({ page, workflow }) => {
6662
await modal.waitFor();
6763
await modal.getByRole('button', { name: 'Image list', exact: true }).click();
6864
await expect(modal.getByRole('row')).toHaveCount(7);
69-
});
70-
71-
await test.step('Add dataset filters', async () => {
72-
await page.goto(datasetUrl);
73-
await waitPageLoading(page);
74-
await page.getByText('Current selection').click();
75-
await expect(page.getByRole('button', { name: 'Save' })).toBeDisabled();
76-
await selectSlimSelect(page, page.getByLabel('Selector for attribute k1'), 'k1v1');
77-
// Await slim-select change events are propagated before clicking the Save button
78-
await new Promise((r) => setTimeout(r, 500));
79-
await page.getByRole('button', { name: 'Apply', exact: true }).click();
80-
await page.getByRole('button', { name: 'Save' }).click();
81-
await modal.waitFor();
82-
await modal.getByRole('button', { name: 'Confirm' }).click();
83-
await waitModalClosed(page);
84-
});
85-
86-
await test.step('Check images with dataset filter', async () => {
87-
await page.goto(workflow.url);
88-
await waitPageLoading(page);
89-
await page.getByRole('button', { name: 'Run workflow' }).click();
90-
await modal.waitFor();
91-
await modal.getByRole('button', { name: 'Image list', exact: true }).click();
92-
await expect(modal.getByRole('row')).toHaveCount(4);
9365
await modal.getByRole('button', { name: 'Close' }).click();
9466
await waitModalClosed(page);
9567
});

0 commit comments

Comments
 (0)