Skip to content

Commit 1e099f8

Browse files
add unsaved changes popover test
1 parent c5dba02 commit 1e099f8

File tree

6 files changed

+39
-6
lines changed

6 files changed

+39
-6
lines changed

tests/e2e/helpers/constants.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,7 @@ export enum RdiTemplatePipelineType {
112112
export enum RdiTemplateDatabaseType {
113113
SqlServer = 'sql',
114114
Oracle = 'oracle',
115-
MyQal = 'my-sql',
115+
MySql = 'mysql',
116116
}
117117

118118
export enum RdiPopoverOptions {

tests/e2e/pageObjects/components/monaco-editor.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,8 @@ export class MonacoEditor {
2020
* @param clean if field should be cleaned
2121
*/
2222
async sendTextToMonaco(input: Selector, command: string, clean = true): Promise<void> {
23+
await t.click(input);
2324
if(clean) {
24-
await t.click(input);
2525
await t
2626
// remove text since replace doesn't work here
2727
.pressKey('ctrl+a')

tests/e2e/pageObjects/rdi-instance-page.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,10 @@ export class RdiInstancePage extends BaseOverviewPage {
5555
databaseDropdown = Selector('[data-testid=db-type-select]');
5656

5757
//dialog
58-
selectOptionDialog = Selector('[data-testid=rdi-pipeline-source-dialog]', { timeout: 100 });
58+
selectOptionDialog = Selector('[data-testid=rdi-pipeline-source-dialog]', { timeout: 1000 });
59+
closeConfirmNavigateDialog = Selector('[data-testid=oauth-select-account-dialog] button', { timeout: 1000 });
60+
proceedNavigateDialog = Selector('[data-testid=confirm-leave-page]', { timeout: 1000 });
61+
downloadNavigateDialog = Selector('[data-testid=popup-download-pipeline-btn]', { timeout: 1000 });
5962

6063
tooltip = Selector('[role=tooltip]', { timeout: 500 });
6164
/**

tests/e2e/tests/web/critical-path/rdi/add-job.e2e.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,7 @@ test('Verify that user can change job config', async() => {
108108
const textForMonaco = 'here should be a job';
109109

110110
await rdiInstancePage.PipelineManagementPanel.addJob(jobName);
111+
await rdiInstancePage.PipelineManagementPanel.openJobByName(jobName);
111112
let text = await rdiInstancePage.MonacoEditor.getTextFromMonaco();
112113
await t.expect(text).eql('', 'monacoEditor for the job is not empty');
113114
await rdiInstancePage.MonacoEditor.sendTextToMonaco(rdiInstancePage.jobsInput, textForMonaco, false);

tests/e2e/tests/web/critical-path/rdi/configuration.e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ test('Verify that user can insert template', async() => {
8787
await t.click(rdiInstancePage.templateButton);
8888
await t.expect(rdiInstancePage.templateApplyButton.visible).ok('the template popover is not expanded');
8989
await t.expect(rdiInstancePage.pipelineDropdown.textContent).eql(defaultValue, 'the default value is set incorrectly');
90-
await rdiInstancePage.setTemplateDropdownValue(RdiTemplatePipelineType.Ingest, RdiTemplateDatabaseType.MyQal);
90+
await rdiInstancePage.setTemplateDropdownValue(RdiTemplatePipelineType.Ingest, RdiTemplateDatabaseType.MySql);
9191

9292
//verify uniq templates words - should be undated when templates are added
9393
const enteredText = await rdiInstancePage.MonacoEditor.getTextFromMonaco();

tests/e2e/tests/web/critical-path/rdi/navigation.e2e.ts

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import { AddNewRdiParameters, RdiApiRequests } from '../../../../helpers/api/api
44
import { commonUrl, ossStandaloneConfig } from '../../../../helpers/conf';
55
import { DatabaseHelper } from '../../../../helpers';
66
import { MyRedisDatabasePage } from '../../../../pageObjects';
7-
import { RdiPopoverOptions, RedisOverviewPage } from '../../../../helpers/constants';
7+
import {
8+
RdiPopoverOptions,
9+
RdiTemplateDatabaseType,
10+
RdiTemplatePipelineType,
11+
RedisOverviewPage
12+
} from '../../../../helpers/constants';
813
import { RdiInstancesListPage } from '../../../../pageObjects/rdi-instances-list-page';
914
import { DatabaseAPIRequests } from '../../../../helpers/api/api-database';
1015

@@ -23,7 +28,7 @@ const rdiInstance: AddNewRdiParameters = {
2328
};
2429

2530
//skip the tests until rdi integration is added
26-
fixture.skip `Rdi Navigation`
31+
fixture `Rdi Navigation`
2732
.meta({ type: 'critical_path', feature: 'rdi' })
2833
.page(commonUrl)
2934
.beforeEach(async() => {
@@ -55,6 +60,7 @@ test.before(async() => {
5560
const rdiName = rdiInstancePage.RdiHeader.rdiNameLinkBreadcrumbs.textContent;
5661
await t.expect(rdiName).eql(rdiInstance.name, 'instance name in breadcrumbs is not correct');
5762

63+
await rdiInstancePage.selectStartPipelineOption(RdiPopoverOptions.Pipeline);
5864
await t.click(rdiInstancePage.NavigationPanel.myRedisDBButton);
5965
await myRedisDatabasePage.setActivePage(RedisOverviewPage.DataBase);
6066
count = await myRedisDatabasePage.NavigationPanel.getButtonsCount();
@@ -82,3 +88,26 @@ test('Verify that Insight and Sign in buttons are displayed ', async() => {
8288
await t.expect(tab).eql('Explore');
8389
await t.expect(rdiInstancePage.RdiHeader.cloudSignInButton.exists).ok('sight in button is not exist');
8490
});
91+
92+
test('Verify that confirmation message is displayed, if there are unsaved changes ', async() => {
93+
const jobName = 'jobName';
94+
const textForMonaco = 'here should be a job';
95+
96+
await rdiInstancePage.PipelineManagementPanel.addJob(jobName);
97+
await rdiInstancePage.PipelineManagementPanel.openJobByName(jobName);
98+
await t.click(rdiInstancePage.templateCancelButton);
99+
await rdiInstancePage.MonacoEditor.sendTextToMonaco(rdiInstancePage.jobsInput, textForMonaco, false);
100+
await t.click(rdiInstancePage.RdiHeader.breadcrumbsLink);
101+
await t.expect(rdiInstancePage.downloadNavigateDialog.exists).ok('the user can not download');
102+
await t.click(rdiInstancePage.closeConfirmNavigateDialog);
103+
104+
const text = await rdiInstancePage.MonacoEditor.getTextFromMonaco();
105+
await t.expect(text).eql(textForMonaco, 'changes is not saved');
106+
107+
await t.click(rdiInstancePage.PipelineManagementPanel.configurationTabLink);
108+
await t.click(rdiInstancePage.templateButton);
109+
await rdiInstancePage.setTemplateDropdownValue(RdiTemplatePipelineType.Ingest, RdiTemplateDatabaseType.MySql);
110+
await t.click(rdiInstancePage.NavigationPanel.myRedisDBButton);
111+
await t.click(rdiInstancePage.proceedNavigateDialog);
112+
await t.expect(rdiInstancesListPage.rdiInstanceButton.exists).ok('the user is not navigated to the panel');
113+
});

0 commit comments

Comments
 (0)