Skip to content

Commit b496f8f

Browse files
Merge pull request #4247 from RedisInsight/e2e/feature/RI-5114
add test for the RI-5114
2 parents d43ec77 + 89954f9 commit b496f8f

File tree

2 files changed

+73
-5
lines changed

2 files changed

+73
-5
lines changed

tests/e2e/pageObjects/my-redis-databases-page.ts

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
4040
sortByConnectionType = Selector('span').withAttribute('title', 'Connection Type');
4141
importDatabasesBtn = Selector('[data-testid=option-btn-import]');
4242
retryImportBtn = Selector('[data-testid=btn-retry]');
43-
submitImportBtn = Selector('[data-testid=submit-btn]');
4443
removeImportedFileBtn = Selector('[aria-label="Clear selected files"]');
4544
exportBtn = Selector('[data-testid=export-btn]');
4645
exportSelectedDbsBtn = Selector('[data-testid=export-selected-dbs]');
@@ -61,8 +60,9 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
6160
moduleGearsIcon = Selector('[data-testid^=Gears]');
6261
redisStackIcon = Selector('[data-testid=redis-stack-icon]');
6362
tooltipRedisStackLogo = Selector('[data-testid=tooltip-redis-stack-icon]');
63+
iconNotUsedDatabase = Selector('[data-testid^=database-status-tryDatabase-]');
64+
iconDeletedDatabase = Selector('[data-testid^=database-status-checkIfDeleted-]');
6465
//TEXT INPUTS (also referred to as 'Text fields')
65-
aliasInput = Selector('[data-testid=alias-input]');
6666
searchInput = Selector('[data-testid=search-database-list]');
6767
importDatabaseInput = Selector('[data-testid=import-file-modal-filepicker]');
6868
//TEXT ELEMENTS
@@ -71,8 +71,6 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
7171
dbNameList = Selector('[data-testid^=instance-name]', { timeout: 3000 });
7272
tableRowContent = Selector('[data-test-subj=database-alias-column]');
7373
hostPort = Selector('[data-testid=host-port]');
74-
noResultsFoundMessage = Selector('div').withExactText('No results found');
75-
noResultsFoundText = Selector('div').withExactText('No results matched your search. Try reducing the criteria.');
7674
failedImportMessage = Selector('[data-testid=result-failed]');
7775
importResult = Selector('[data-testid^=table-result-]');
7876
userProfileAccountInfo = Selector('[data-testid^=profile-account-]');
@@ -81,10 +79,10 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
8179
successResultsAccordion = Selector('[data-testid^=success-results-]');
8280
partialResultsAccordion = Selector('[data-testid^=partial-results-]');
8381
failedResultsAccordion = Selector('[data-testid^=failed-results-]');
82+
notificationUnusedDbMessage = Selector('[class^=_warningTooltipContent]');
8483
// CONTAINERS
8584
databaseContainer = Selector('.databaseContainer');
8685
connectionTypeTitle = Selector('[data-test-subj=tableHeaderCell_connectionType_2]');
87-
signInAgreement = Selector('[class="euiCheckbox__square"]');
8886
addDatabaseImport = Selector('[data-testid=add-db_import]');
8987

9088
/**
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
import { DatabaseHelper } from '../../../../helpers/database';
2+
import { BrowserPage, MyRedisDatabasePage, WorkbenchPage } from '../../../../pageObjects';
3+
import { commonUrl, ossStandaloneConfig, ossStandaloneV5Config } from '../../../../helpers/conf';
4+
import { rte } from '../../../../helpers/constants';
5+
import { DatabaseAPIRequests } from '../../../../helpers/api/api-database';
6+
import { DatabaseScripts, DbTableParameters } from '../../../../helpers';
7+
import { format, subDays } from 'date-fns';
8+
9+
const browserPage = new BrowserPage();
10+
const databaseHelper = new DatabaseHelper();
11+
const databaseAPIRequests = new DatabaseAPIRequests();
12+
const myRedisDatabasePage = new MyRedisDatabasePage();
13+
const workbenchPage = new WorkbenchPage();
14+
15+
const currentDate = new Date();
16+
const fiveDaysAgo = subDays(currentDate, 5);
17+
const rowValue5 = format(fiveDaysAgo, 'yyyy-MM-dd HH:mm:ss');
18+
19+
const seventeenDaysAgo = subDays(currentDate, 17);
20+
const rowValue16 = format(seventeenDaysAgo, 'yyyy-MM-dd HH:mm:ss');
21+
22+
const dbTableParams5days: DbTableParameters = {
23+
tableName: 'database_instance',
24+
columnName: 'lastConnection',
25+
rowValue: rowValue5,
26+
conditionWhereColumnName: 'name',
27+
conditionWhereColumnValue: ossStandaloneConfig.databaseName
28+
};
29+
30+
const dbTableParams16days: DbTableParameters = {
31+
tableName: 'database_instance',
32+
columnName: 'lastConnection',
33+
rowValue: rowValue16,
34+
conditionWhereColumnName: 'name',
35+
conditionWhereColumnValue: ossStandaloneConfig.databaseName
36+
};
37+
38+
fixture `DB expire notifications`
39+
.meta({ type: 'critical_path', rte: rte.standalone })
40+
.page(commonUrl);
41+
42+
test.before(async() => {
43+
await databaseHelper.acceptLicenseTerms();
44+
await databaseAPIRequests.deleteAllDatabasesApi();
45+
await databaseAPIRequests.addNewStandaloneDatabaseApi(ossStandaloneV5Config);
46+
await databaseAPIRequests.addNewStandaloneDatabaseApi(ossStandaloneConfig, true);
47+
await browserPage.reloadPage();
48+
await myRedisDatabasePage.clickOnDBByName(ossStandaloneV5Config.databaseName);
49+
})
50+
.after(async() => {
51+
// await databaseAPIRequests.deleteAllDatabasesApi();
52+
})('Verify that notifications are displayed if the db will be expired soon', async t => {
53+
await t.click(browserPage.NavigationPanel.workbenchButton);
54+
await workbenchPage.sendCommandInWorkbench('CMS.INITBYDIM');
55+
56+
await DatabaseScripts.updateColumnValueInDBTable(dbTableParams5days);
57+
await t.click(browserPage.NavigationPanel.myRedisDBButton);
58+
await t.hover(myRedisDatabasePage.iconNotUsedDatabase);
59+
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('Probabilistic data structures', 'there is no info about module');
60+
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('free Cloud databases will be deleted after 15 days of inactivity.', 'there is no expected info');
61+
62+
await myRedisDatabasePage.clickOnDBByName(ossStandaloneConfig.databaseName);
63+
await t.click(browserPage.NavigationPanel.myRedisDBButton);
64+
await DatabaseScripts.updateColumnValueInDBTable(dbTableParams16days);
65+
await myRedisDatabasePage.reloadPage();
66+
67+
await t.hover(myRedisDatabasePage.iconDeletedDatabase);
68+
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('Build your app with Redis Cloud', 'there is no common');
69+
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('Free Cloud DBs auto-delete after 15 days', 'there is no expected info');
70+
});

0 commit comments

Comments
 (0)