Skip to content

Commit 24145c4

Browse files
committed
add preview test and refactor
1 parent 622b617 commit 24145c4

File tree

16 files changed

+301
-213
lines changed

16 files changed

+301
-213
lines changed

src/shared/constants/qa/datasets.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -103,6 +103,8 @@ export enum DatasetSourcesLeftPanelQA {
103103

104104
export enum DatasetActionQA {
105105
CreateButton = 'dataset-create-button',
106+
SettingsButton = 'dataset-settings-button',
107+
SettingsShowPreviewByDefault = 'dataset-settings-show-preview-item',
106108
}
107109

108110
export const enum DatasetDialogRelationQA {

src/ui/units/datasets/containers/Dataset/ActionPanelRightItems.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,12 @@ export function ActionPanelRightItems(props: Props) {
132132
const {ref, triggerProps} = args;
133133

134134
return (
135-
<Button ref={ref as React.Ref<HTMLButtonElement>} view="flat" {...triggerProps}>
135+
<Button
136+
ref={ref as React.Ref<HTMLButtonElement>}
137+
view="flat"
138+
qa={DatasetActionQA.SettingsButton}
139+
{...triggerProps}
140+
>
136141
<Icon data={Gear} size={ACTION_PANEL_ICON_SIZE} />
137142
</Button>
138143
);
@@ -151,6 +156,7 @@ export function ActionPanelRightItems(props: Props) {
151156
key={ITEM_SHOW_PREVIEW_BY_DEFAULT}
152157
value={ITEM_SHOW_PREVIEW_BY_DEFAULT}
153158
disabled={isLoadingDataset || isValidationLoading}
159+
qa={DatasetActionQA.SettingsShowPreviewByDefault}
154160
>
155161
{i18n('label_load_preview_by_default')}
156162
</Select.Option>,
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export const WorkbookEntities = {
2+
Basic: {id: '3h42l91yd2lgs', url: '/workbooks/3h42l91yd2lgs', name: 'E2E Workbook'},
3+
} as const;

tests/opensource-suites/dataset/base/dataset-editor.test.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,8 @@ import {
1111
} from '../../../../src/shared';
1212
import {DatasetsEntities} from '../../../constants/test-entities/datasets';
1313
import DatasetPage from '../../../page-objects/dataset/DatasetPage';
14-
import {GET_PREVIEW_URL, VALIDATE_DATASET_URL} from '../constants';
15-
import {getFieldNameInput} from './helpers';
14+
import {GET_PREVIEW_URL} from '../../../page-objects/dataset/constants';
15+
import {getValidatePromise} from '../../../page-objects/dataset/utils';
1616

1717
datalensTest.describe('Dataset basic ui', () => {
1818
const url = `datasets${DatasetsEntities.Basic.url}`;
@@ -67,7 +67,7 @@ datalensTest.describe('Dataset basic ui', () => {
6767
const datasetPage = new DatasetPage({page});
6868
await openTestPage(page, url);
6969
await page.waitForSelector(slct(DatasetFieldsTabQa.FieldNameColumnInput));
70-
const fieldInput = getFieldNameInput(page);
70+
const fieldInput = datasetPage.datasetFieldsTable.getFieldNameInput();
7171
const {newValue} = await datasetPage.renameFirstField();
7272

7373
const updatedValue = await fieldInput.inputValue();
@@ -231,9 +231,7 @@ datalensTest.describe('Dataset basic ui', () => {
231231
.locator('input');
232232

233233
await secondField.fill(fieldInputValue);
234-
const validatePromise = page.waitForResponse((response) => {
235-
return response.url().includes(VALIDATE_DATASET_URL);
236-
});
234+
const validatePromise = getValidatePromise(page);
237235
await page.keyboard.press('Enter');
238236
await validatePromise;
239237

tests/opensource-suites/dataset/base/helpers.ts

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

tests/opensource-suites/dataset/base/preview.test.ts

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,19 @@ import {expect} from '@playwright/test';
22

33
import datalensTest from '../../../utils/playwright/globalTestDefinition';
44
import {openTestPage, slct} from '../../../utils';
5-
import {DatasetPreviewQA, DatasetPanelQA, DATASET_TAB} from '../../../../src/shared';
5+
import {
6+
DatasetPreviewQA,
7+
DatasetPanelQA,
8+
DATASET_TAB,
9+
DatasetActionQA,
10+
DatasetFieldsTabQa,
11+
DatasetSourcesTableQa,
12+
} from '../../../../src/shared';
613
import {DatasetsEntities} from '../../../constants/test-entities/datasets';
714
import DatasetPage from '../../../page-objects/dataset/DatasetPage';
15+
import {SET_CONNECTION_METHODS} from '../../../page-objects/dataset/constants';
16+
import {ConnectionsNames} from '../../../constants/test-entities/connections';
17+
import {WorkbookEntities} from '../../../constants/test-entities/workbook';
818

919
datalensTest.describe('Dataset basic ui', () => {
1020
const url = `datasets${DatasetsEntities.Basic.url}`;
@@ -73,4 +83,30 @@ datalensTest.describe('Dataset basic ui', () => {
7383

7484
expect(previewRequested).toBe(false);
7585
});
86+
87+
datalensTest('Global preview disable should work in dataset', async ({page}) => {
88+
const datasetPage = new DatasetPage({page});
89+
await openTestPage(page, `${WorkbookEntities.Basic.url}/datasets/new`);
90+
await datasetPage.setConnectionInWorkbookDataset({
91+
method: SET_CONNECTION_METHODS.ADD,
92+
connectionName: ConnectionsNames.ConnectionPostgreSQL,
93+
});
94+
await page.waitForSelector(slct(DatasetSourcesTableQa.Source));
95+
await datasetPage.addAvatarByDragAndDrop();
96+
await datasetPage.createDatasetInWorkbookOrCollection();
97+
const selector = slct(DatasetPreviewQA.Preview);
98+
await page.waitForSelector(selector);
99+
const preview = page.locator(selector);
100+
await expect(preview).toBeVisible();
101+
const datasetSettingsBtn = page.locator(slct(DatasetActionQA.SettingsButton));
102+
await datasetSettingsBtn.click();
103+
const showPreviewSelectItem = await page.waitForSelector(
104+
slct(DatasetActionQA.SettingsShowPreviewByDefault),
105+
);
106+
await showPreviewSelectItem.click();
107+
await datasetPage.saveUpdatedDataset();
108+
await page.reload();
109+
await page.waitForSelector(slct(DatasetFieldsTabQa.FieldNameColumnInput));
110+
await expect(preview).not.toBeVisible();
111+
});
76112
});

tests/opensource-suites/dataset/base/sources.test.ts

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
DatasetSourceEditorDialogQA,
99
} from '../../../../src/shared';
1010
import {DatasetsEntities} from '../../../constants/test-entities/datasets';
11-
import {VALIDATE_DATASET_URL} from '../constants';
11+
import {getValidatePromise} from '../../../page-objects/dataset/utils';
1212

1313
datalensTest.describe('Dataset sources', () => {
1414
datalensTest('Add source button should add source', async ({page}) => {
@@ -33,9 +33,7 @@ datalensTest.describe('Dataset sources', () => {
3333
await schemeNameInput.fill('barfoo');
3434

3535
const applyBtn = page.locator(slct(DatasetSourceEditorDialogQA.ApplyBtn));
36-
const validatePromise = page.waitForResponse((res) =>
37-
res.url().includes(VALIDATE_DATASET_URL),
38-
);
36+
const validatePromise = getValidatePromise(page);
3937
await applyBtn.click();
4038
await validatePromise;
4139

@@ -65,9 +63,7 @@ datalensTest.describe('Dataset sources', () => {
6563
await page.keyboard.insertText('abc');
6664

6765
const applyBtn = page.locator(slct(DatasetSourceEditorDialogQA.ApplyBtn));
68-
const validatePromise = page.waitForResponse((res) =>
69-
res.url().includes(VALIDATE_DATASET_URL),
70-
);
66+
const validatePromise = getValidatePromise(page);
7167
await applyBtn.click();
7268
await validatePromise;
7369

tests/opensource-suites/dataset/base/unload-alert.test.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import {openTestPage, slct} from '../../../utils';
66
import {DatasetFieldsTabQa} from '../../../../src/shared';
77
import {DatasetsEntities} from '../../../constants/test-entities/datasets';
88
import DatasetPage from '../../../page-objects/dataset/DatasetPage';
9-
import {getFieldNameInput} from './helpers';
109

1110
datalensTest.describe('Dataset unsaved changes navigation prevention', () => {
1211
const url = `datasets${DatasetsEntities.Basic.url}`;
@@ -47,7 +46,7 @@ datalensTest.describe('Dataset unsaved changes navigation prevention', () => {
4746
);
4847

4948
datalensTest('Dismissing beforeunload dialog keeps user on the page', async ({page}) => {
50-
const fieldInput = getFieldNameInput(page);
49+
const fieldInput = datasetPage.datasetFieldsTable.getFieldNameInput();
5150
const {newValue} = (await datasetPage.renameFirstField({value: uuidv4()})) ?? {};
5251

5352
const dialogPromise = page.waitForEvent('dialog');
@@ -65,7 +64,7 @@ datalensTest.describe('Dataset unsaved changes navigation prevention', () => {
6564
});
6665

6766
datalensTest('Accepting beforeunload dialog allows the page to reload', async ({page}) => {
68-
const fieldInput = getFieldNameInput(page);
67+
const fieldInput = datasetPage.datasetFieldsTable.getFieldNameInput();
6968
const {originalValue} = (await datasetPage.renameFirstField({value: uuidv4()})) ?? {};
7069

7170
page.once('dialog', (dialog) => dialog.accept());

tests/opensource-suites/dataset/constants.ts

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

tests/opensource-suites/dataset/filters/dataset-filters.test.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,8 @@ import {openTestPage, slct, waitForCondition} from '../../../utils';
55
import {DialogFilterQA, FiltersQA, Operations} from '../../../../src/shared';
66
import {DatasetsEntities} from '../../../constants/test-entities/datasets';
77
import DatasetPage from '../../../page-objects/dataset/DatasetPage';
8-
import {VALIDATE_DATASET_URL} from '../constants';
8+
import {VALIDATE_DATASET_URL} from '../../../page-objects/dataset/constants';
9+
import {getValidatePromise} from '../../../page-objects/dataset/utils';
910

1011
async function addIsNullFilter(page: Page, datasetPage: DatasetPage) {
1112
await datasetPage.datasetTabSection.clickAddButton();
@@ -91,9 +92,7 @@ datalensTest.describe('Dataset obligatory filters', () => {
9192
const row = await datasetPage.datasetTabSection.getRowLocatorByIndex(0);
9293
const deleteButton = row.locator(slct(FiltersQA.TableDeleteRowBtn));
9394

94-
const validatePromise = page.waitForResponse((response) => {
95-
return response.url().includes(VALIDATE_DATASET_URL);
96-
});
95+
const validatePromise = getValidatePromise(page);
9796
await deleteButton.click();
9897
await validatePromise;
9998

0 commit comments

Comments
 (0)