Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 3 additions & 5 deletions tests/e2e/pageObjects/my-redis-databases-page.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
sortByConnectionType = Selector('span').withAttribute('title', 'Connection Type');
importDatabasesBtn = Selector('[data-testid=option-btn-import]');
retryImportBtn = Selector('[data-testid=btn-retry]');
submitImportBtn = Selector('[data-testid=submit-btn]');
removeImportedFileBtn = Selector('[aria-label="Clear selected files"]');
exportBtn = Selector('[data-testid=export-btn]');
exportSelectedDbsBtn = Selector('[data-testid=export-selected-dbs]');
Expand All @@ -61,8 +60,9 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
moduleGearsIcon = Selector('[data-testid^=Gears]');
redisStackIcon = Selector('[data-testid=redis-stack-icon]');
tooltipRedisStackLogo = Selector('[data-testid=tooltip-redis-stack-icon]');
iconNotUsedDatabase = Selector('[data-testid^=database-status-tryDatabase-]');
iconDeletedDatabase = Selector('[data-testid^=database-status-checkIfDeleted-]');
//TEXT INPUTS (also referred to as 'Text fields')
aliasInput = Selector('[data-testid=alias-input]');
searchInput = Selector('[data-testid=search-database-list]');
importDatabaseInput = Selector('[data-testid=import-file-modal-filepicker]');
//TEXT ELEMENTS
Expand All @@ -71,8 +71,6 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
dbNameList = Selector('[data-testid^=instance-name]', { timeout: 3000 });
tableRowContent = Selector('[data-test-subj=database-alias-column]');
hostPort = Selector('[data-testid=host-port]');
noResultsFoundMessage = Selector('div').withExactText('No results found');
noResultsFoundText = Selector('div').withExactText('No results matched your search. Try reducing the criteria.');
failedImportMessage = Selector('[data-testid=result-failed]');
importResult = Selector('[data-testid^=table-result-]');
userProfileAccountInfo = Selector('[data-testid^=profile-account-]');
Expand All @@ -81,10 +79,10 @@ export class MyRedisDatabasePage extends BaseOverviewPage {
successResultsAccordion = Selector('[data-testid^=success-results-]');
partialResultsAccordion = Selector('[data-testid^=partial-results-]');
failedResultsAccordion = Selector('[data-testid^=failed-results-]');
notificationUnusedDbMessage = Selector('[class^=_warningTooltipContent]');
// CONTAINERS
databaseContainer = Selector('.databaseContainer');
connectionTypeTitle = Selector('[data-test-subj=tableHeaderCell_connectionType_2]');
signInAgreement = Selector('[class="euiCheckbox__square"]');
addDatabaseImport = Selector('[data-testid=add-db_import]');

/**
Expand Down
70 changes: 70 additions & 0 deletions tests/e2e/tests/web/regression/database/notification.e2e.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
import { DatabaseHelper } from '../../../../helpers/database';
import { BrowserPage, MyRedisDatabasePage, WorkbenchPage } from '../../../../pageObjects';
import { commonUrl, ossStandaloneConfig, ossStandaloneV5Config } from '../../../../helpers/conf';
import { rte } from '../../../../helpers/constants';
import { DatabaseAPIRequests } from '../../../../helpers/api/api-database';
import { DatabaseScripts, DbTableParameters } from '../../../../helpers';
import { format, subDays } from 'date-fns';

const browserPage = new BrowserPage();
const databaseHelper = new DatabaseHelper();
const databaseAPIRequests = new DatabaseAPIRequests();
const myRedisDatabasePage = new MyRedisDatabasePage();
const workbenchPage = new WorkbenchPage();

const currentDate = new Date();
const fiveDaysAgo = subDays(currentDate, 5);
const rowValue5 = format(fiveDaysAgo, 'yyyy-MM-dd HH:mm:ss');

const seventeenDaysAgo = subDays(currentDate, 17);
const rowValue16 = format(seventeenDaysAgo, 'yyyy-MM-dd HH:mm:ss');

const dbTableParams5days: DbTableParameters = {
tableName: 'database_instance',
columnName: 'lastConnection',
rowValue: rowValue5,
conditionWhereColumnName: 'name',
conditionWhereColumnValue: ossStandaloneConfig.databaseName
};

const dbTableParams16days: DbTableParameters = {
tableName: 'database_instance',
columnName: 'lastConnection',
rowValue: rowValue16,
conditionWhereColumnName: 'name',
conditionWhereColumnValue: ossStandaloneConfig.databaseName
};

fixture `DB expire notifications`
.meta({ type: 'critical_path', rte: rte.standalone })
.page(commonUrl);

test.before(async() => {
await databaseHelper.acceptLicenseTerms();
await databaseAPIRequests.deleteAllDatabasesApi();
await databaseAPIRequests.addNewStandaloneDatabaseApi(ossStandaloneV5Config);
await databaseAPIRequests.addNewStandaloneDatabaseApi(ossStandaloneConfig, true);
await browserPage.reloadPage();
await myRedisDatabasePage.clickOnDBByName(ossStandaloneV5Config.databaseName);
})
.after(async() => {
// await databaseAPIRequests.deleteAllDatabasesApi();
})('Verify that notifications are displayed if the db will be expired soon', async t => {
await t.click(browserPage.NavigationPanel.workbenchButton);
await workbenchPage.sendCommandInWorkbench('CMS.INITBYDIM');

await DatabaseScripts.updateColumnValueInDBTable(dbTableParams5days);
await t.click(browserPage.NavigationPanel.myRedisDBButton);
await t.hover(myRedisDatabasePage.iconNotUsedDatabase);
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('Probabilistic data structures', 'there is no info about module');
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('free Cloud databases will be deleted after 15 days of inactivity.', 'there is no expected info');

await myRedisDatabasePage.clickOnDBByName(ossStandaloneConfig.databaseName);
await t.click(browserPage.NavigationPanel.myRedisDBButton);
await DatabaseScripts.updateColumnValueInDBTable(dbTableParams16days);
await myRedisDatabasePage.reloadPage();

await t.hover(myRedisDatabasePage.iconDeletedDatabase);
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('Build your app with Redis Cloud', 'there is no common');
await t.expect(myRedisDatabasePage.notificationUnusedDbMessage.textContent).contains('Free Cloud DBs auto-delete after 15 days', 'there is no expected info');
});
Loading