Skip to content
This repository has been archived by the owner on Mar 4, 2024. It is now read-only.

DRAFT: EVEREST-839-multinamespace-e2e-tests #260

Merged
merged 60 commits into from
Feb 29, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
60 commits
Select commit Hold shift + click to select a range
a26cbe6
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 14, 2024
29fa439
Merge branch 'main' into EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 20, 2024
07df976
EVEREST-854-default-nodes: multinamespace provisioning
solovevayaroslavna Feb 20, 2024
26146de
EVEREST-854-default-nodes: multinamespace provisioning
solovevayaroslavna Feb 20, 2024
e87b219
EVEREST-854-default-nodes: multinamespace provisioning
solovevayaroslavna Feb 20, 2024
ee0f28e
EVEREST-854-default-nodes: multinamespace provisioning
solovevayaroslavna Feb 20, 2024
6b0beb7
chore: lint/format
solovevayaroslavna Feb 20, 2024
0260947
EVEREST-854-default-nodes: multinamespace provisioning
solovevayaroslavna Feb 20, 2024
2eb751a
chore: lint/format
solovevayaroslavna Feb 20, 2024
bcd4a0c
Merge branch 'main' into EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 21, 2024
5084523
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 22, 2024
eb88ef5
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 27, 2024
862b0d8
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 27, 2024
973227b
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 27, 2024
8c3d5d5
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 27, 2024
d0e9221
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 27, 2024
05eef37
Merge branch 'main' into EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 27, 2024
755c41a
EVEREST-839-multinamespace-e2e-tests: conflicts solving
solovevayaroslavna Feb 27, 2024
3a527ac
chore: lint/format
solovevayaroslavna Feb 27, 2024
1ce82db
EVEREST-839-multinamespace-e2e-tests: code review fix
solovevayaroslavna Feb 27, 2024
916e8ba
Merge remote-tracking branch 'origin/EVEREST-839-multinamespace-e2e-t…
solovevayaroslavna Feb 27, 2024
d771e35
EVEREST-839-multinamespace-e2e-tests: code review fix
solovevayaroslavna Feb 27, 2024
c3f03a3
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 27, 2024
d0dee02
chore: lint/format
solovevayaroslavna Feb 27, 2024
ceb58b3
EVEREST-839-multinamespace-e2e-tests: code review fix
solovevayaroslavna Feb 27, 2024
b38f428
EVEREST-839-multinamespace-e2e-tests: code review fix
solovevayaroslavna Feb 27, 2024
49c873b
Merge remote-tracking branch 'origin/EVEREST-839-multinamespace-e2e-t…
solovevayaroslavna Feb 27, 2024
5283380
EVEREST-839-multinamespace-e2e-tests: CI debug
solovevayaroslavna Feb 27, 2024
d8c2905
EVEREST-839-multinamespace-e2e-tests: CI debug
solovevayaroslavna Feb 27, 2024
c73b358
EVEREST-839-multinamespace-e2e-tests: CI debug
solovevayaroslavna Feb 28, 2024
78c8afe
EVEREST-839-multinamespace-e2e-tests: CI debug
solovevayaroslavna Feb 28, 2024
eafa3f4
EVEREST-839-multinamespace-e2e-tests: CI debug
solovevayaroslavna Feb 28, 2024
98b243b
chore: lint/format
solovevayaroslavna Feb 28, 2024
91848d6
EVEREST-839-multinamespace-e2e-tests: monitoring skipping test
solovevayaroslavna Feb 28, 2024
d3c40e0
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
8dff08d
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
b165b6d
chore: lint/format
solovevayaroslavna Feb 28, 2024
dcbcb71
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
5f03e1d
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
708aa5d
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
7d9ee99
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
b22cf19
EVEREST-839-multinamespace-e2e-tests: CI debug
solovevayaroslavna Feb 28, 2024
b65c308
EVEREST-839-multinamespace-e2e-tests: CI debug
solovevayaroslavna Feb 28, 2024
8ad7886
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
7607f6b
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
0d5d065
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
6bff0ca
EVEREST-839-multinamespace-e2e-tests: CI fix
solovevayaroslavna Feb 28, 2024
413bf9f
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
f0b3ca4
EVEREST-839-multinamespace-e2e-tests: fix CI
solovevayaroslavna Feb 29, 2024
fe50bcf
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
b600773
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
01bdc29
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
82261ed
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
62ad7ce
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
e827d72
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
14db02d
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
c8a72e7
Merge branch 'main' into EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
de9a19d
EVEREST-839-multinamespace-e2e-tests
solovevayaroslavna Feb 29, 2024
44b7e0f
Update apps/everest/.e2e/utils/backup-storage.ts
solovevayaroslavna Feb 29, 2024
8d98281
EVEREST-839-multinamespace-e2e-tests: code review fix
solovevayaroslavna Feb 29, 2024
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
34 changes: 33 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,8 @@ jobs:

- name: Echo PMM credentials
run: |
echo -n MONITORING_URL=$("http://" && kubectl get svc/monitoring-service -o json | jq -r '.spec.clusterIP') >> $GITHUB_ENV
url=$(kubectl get svc/monitoring-service -o json | jq -r '.spec.clusterIP')
echo -n "MONITORING_URL=http://$url" >> $GITHUB_ENV

- name: Run Provisioning
run: |
Expand All @@ -168,6 +169,37 @@ jobs:
--skip-wizard \
--namespaces everest-ui

- name: Adding psmdb namespace
run: |
cd CLI
go run cmd/everest/main.go install \
--operator.mongodb \
--operator.postgresql=false \
--operator.xtradb-cluster=false \
--skip-wizard \
--namespaces psmdb-only

- name: Adding pxc namespace
run: |
cd CLI
go run cmd/everest/main.go install \
--operator.mongodb=false \
--operator.postgresql=false \
--operator.xtradb-cluster \
--skip-wizard \
--namespaces pxc-only

- name: Adding pg namespace
run: |
cd CLI
go run cmd/everest/main.go install \
--operator.mongodb=false \
--operator.postgresql \
--operator.xtradb-cluster=false \
--skip-wizard \
--namespaces pg-only


- name: Change token
run: |
cd CLI
Expand Down
15 changes: 15 additions & 0 deletions apps/everest/.e2e/config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
namespaces:
- name: everest-ui
operators:
- pxc
- psmdb
- pg
- name: psmdb-only
operators:
- psmdb
- name: pxc-only
operators:
- pxc
- name: pg-only
operators:
- pg
7 changes: 7 additions & 0 deletions apps/everest/.e2e/constants.ts
Original file line number Diff line number Diff line change
@@ -1,2 +1,9 @@
export const STORAGE_STATE_FILE = 'user.json';
export const STORAGE_NAMES = ['test-storage-1', 'test-storage-2'];

export enum EVEREST_CI_NAMESPACES {
EVEREST_UI = 'everest-ui',
PSMDB_ONLY = 'psmdb-only',
PXC_ONLY = 'pxc-only',
PG_ONLY = 'pg-only',
}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import {
} from '../../../utils/database-engines';
import { deleteDbClusterFn } from '../../../utils/db-cluster';
import { getTokenFromLocalStorage } from '../../../utils/localStorage';
import { getNamespacesFn } from '../../../utils/namespaces';
import { getClusterDetailedInfo } from '../../../utils/storage-class';
import { advancedConfigurationStepCheck } from './steps/advanced-configuration-step';
import { backupsStepCheck } from './steps/backups-step';
Expand All @@ -36,6 +35,7 @@ import {
submitWizard,
} from '../../../utils/db-wizard';
import { findDbAndClickActions } from '../../../utils/db-clusters-list';
import { EVEREST_CI_NAMESPACES } from '../../../constants';

test.describe('DB Cluster creation', () => {
let engineVersions = {
Expand All @@ -45,12 +45,10 @@ test.describe('DB Cluster creation', () => {
};
let storageClasses = [];
// let monitoringInstancesList = [];
let namespace = '';
let namespace = EVEREST_CI_NAMESPACES.EVEREST_UI;

test.beforeAll(async ({ request }) => {
const token = await getTokenFromLocalStorage();
const namespaces = await getNamespacesFn(token, request);
namespace = namespaces[0];
engineVersions = await getEnginesVersions(token, namespace, request);

const { storageClassNames = [] } = await getClusterDetailedInfo(
Expand All @@ -75,7 +73,9 @@ test.describe('DB Cluster creation', () => {
// 3) check that the default parameters for MySQL are changed with parameters for the first available dbEngine
});

test('Cluster defaults', async ({ page }) => {
test('Cluster defaults for namespaces with all operators', async ({
page,
}) => {
const expectedNodesOrder = [3, 3, 2];
const dbEnginesButtons = page
.getByTestId('toggle-button-group-input-db-type')
Expand Down Expand Up @@ -115,9 +115,9 @@ test.describe('DB Cluster creation', () => {
namespace,
request
);
let dbName = '';
let scheduleName = '';
let storageName = '';
let dbName: string;
let scheduleName: string;
let storageName: string;

expect(storageClasses.length).toBeGreaterThan(0);

Expand All @@ -131,11 +131,11 @@ test.describe('DB Cluster creation', () => {

dbName = await page.getByTestId('text-input-db-name').inputValue();

await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);
await expect(page.getByText('Number of nodes: 3')).toBeVisible();

await resourcesStepCheck(page);
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

await backupsStepCheck(page);
scheduleName = await page
Expand All @@ -144,13 +144,13 @@ test.describe('DB Cluster creation', () => {
storageName = await page
.getByTestId('text-input-storage-location')
.inputValue();
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

await pitrStepCheck(page);
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

await advancedConfigurationStepCheck(page);
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

// Test the mechanism for default number of nodes
await page.getByTestId('button-edit-preview-basic-information').click();
Expand Down Expand Up @@ -239,14 +239,14 @@ test.describe('DB Cluster creation', () => {
const mySQLButton = page.getByTestId('mysql-toggle-button');
await mySQLButton.click();

await page.getByTestId('db-wizard-continue-button').click();
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);
await moveForward(page);
const enabledBackupsCheckbox = page
.getByTestId('switch-input-backups-enabled')
.getByRole('checkbox');

await expect(enabledBackupsCheckbox).toBeChecked();
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

const enabledPitrCheckbox = page
.getByTestId('switch-input-pitr-enabled-label')
Expand All @@ -260,11 +260,11 @@ test.describe('DB Cluster creation', () => {
page.getByTestId('text-input-pitr-storage-location')
).toBeVisible();

await page.getByTestId('db-wizard-previous-button').click();
await moveBack(page);

await enabledBackupsCheckbox.setChecked(false);
await expect(page.getByTestId('pitr-no-backup-alert')).toBeVisible();
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

await expect(enabledPitrCheckbox).not.toBeChecked();
await expect(enabledPitrCheckbox).toBeDisabled();
Expand All @@ -275,7 +275,7 @@ test.describe('DB Cluster creation', () => {
await page.getByTestId('text-input-db-name').fill('new-cluster');
await page.getByTestId('text-input-storage-class').click();
await page.getByRole('option').first().click();
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

await expect(
page.getByRole('heading', {
Expand All @@ -286,7 +286,7 @@ test.describe('DB Cluster creation', () => {
await page.getByTestId('toggle-button-nodes-3').click();
await page.getByTestId('toggle-button-large').click();
await page.getByTestId('text-input-disk').fill('150');
await page.getByTestId('db-wizard-continue-button').click();
await moveForward(page);

// await expect(
// page.getByRole('heading', {
Expand All @@ -301,7 +301,7 @@ test.describe('DB Cluster creation', () => {
// expect(storageOptions.filter({ hasText: 'ui-dev' })).toBeVisible();
// await storageOptions.first().click();
//
// await page.getByTestId('db-wizard-continue-button').click();
// await await moveForward(page);

await expect(
page.getByRole('heading', { name: 'Advanced Configurations' })
Expand All @@ -317,13 +317,12 @@ test.describe('DB Cluster creation', () => {
test('Multiple Mongo schedules', async ({ page, request }) => {
const clusterName = 'multi-schedule-test';
const token = await getTokenFromLocalStorage();
const namespaces = await getNamespacesFn(token, request);
const recommendedEngineVersions = await getEnginesLatestRecommendedVersions(
token,
namespaces[0],
namespace,
request
);
let storageName = '';
let storageName: string;

await basicInformationStepCheck(
page,
Expand Down Expand Up @@ -353,7 +352,7 @@ test.describe('DB Cluster creation', () => {
await submitWizard(page);
await expect(page.getByTestId('db-wizard-goto-db-clusters')).toBeVisible();

await page.goto(`/databases/${namespaces[0]}/${clusterName}/backups`);
await page.goto(`/databases/${namespace}/${clusterName}/backups`);
await page.getByTestId('menu-button').click();
await page.getByTestId('schedule-menu-item').click();
await page.getByTestId('form-dialog-create').click();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ export const basicInformationStepCheck = async (
const dbEnginesButtons = page
.getByTestId('toggle-button-group-input-db-type')
.getByRole('button');

const nrButtons = await dbEnginesButtons.count();

expect(nrButtons).toBe(3);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,4 +37,13 @@ test.describe('DB Cluster Editing Basic step', () => {
await page.getByTestId('select-input-db-version').inputValue
).toBeDefined();
});

test('Namespaces dropdown should be disabled in edit mode', async ({
page,
}) => {
await page.goto('/databases');
await findDbAndClickActions(page, mySQLName, 'Edit');

await expect(page.getByTestId('text-input-k8s-namespace')).toBeDisabled();
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,10 @@ import {
findDbAndClickRow,
} from '../../../utils/db-clusters-list';
import { getTokenFromLocalStorage } from '../../../utils/localStorage';
import { storageLocationAutocompleteEmptyValidationCheck } from '../../../utils/db-wizard';
import {
moveForward,
storageLocationAutocompleteEmptyValidationCheck,
} from '../../../utils/db-wizard';
import {
checkDbWizardEditSubmitIsAvailableAndClick,
checkSuccessOfUpdateAndGoToDbClustersList,
Expand Down Expand Up @@ -58,11 +61,10 @@ test.describe.serial('DB Cluster Editing PITR Step', async () => {
await page.goto('/databases');
await findDbAndClickActions(page, mySQLName, 'Edit');

const nextStep = page.getByTestId('db-wizard-continue-button');
// Go to Resources step
await nextStep.click();
await moveForward(page);
// Go to Backups step
await nextStep.click();
await moveForward(page);

// Check and fill in backups step
expect(page.getByTestId('pitr-no-backup-alert'));
Expand All @@ -73,7 +75,7 @@ test.describe.serial('DB Cluster Editing PITR Step', async () => {
await backupsCheckbox.setChecked(true);

// Go to PITR step
await nextStep.click();
await moveForward(page);

// Check PITR form
const pitrCheckbox = page
Expand Down Expand Up @@ -106,23 +108,23 @@ test.describe.serial('DB Cluster Editing PITR Step', async () => {
).toHaveText('Enabled');

// Go to Advanced Configuration step
await nextStep.click();
await moveForward(page);
// Go to Monitoring step
await nextStep.click();
await moveForward(page);

await checkDbWizardEditSubmitIsAvailableAndClick(page);
await checkSuccessOfUpdateAndGoToDbClustersList(page);

await findDbAndClickActions(page, mySQLName, 'Edit');

// Go to Resources step
await nextStep.click();
await moveForward(page);
// Go to Backups step
await nextStep.click();
await moveForward(page);
await expect(backupsCheckbox).toBeChecked();

// Go to PITR step
await nextStep.click();
await moveForward(page);
await expect(pitrCheckbox).toBeChecked();
await expect(pitrStorageLocation).toBeVisible();
await expect(pitrStorageLocation).not.toBeEmpty();
Expand All @@ -134,14 +136,12 @@ test.describe.serial('DB Cluster Editing PITR Step', async () => {
await page.goto('/databases');
await findDbAndClickActions(page, mySQLName, 'Edit');

const nextStep = page.getByTestId('db-wizard-continue-button');

// Go to Resources step
await nextStep.click();
await moveForward(page);
// Go to Backups step
await nextStep.click();
await moveForward(page);
// Go to PITR step
await nextStep.click();
await moveForward(page);

// Check PITR step
const pitrCheckbox = page
Expand All @@ -164,9 +164,9 @@ test.describe.serial('DB Cluster Editing PITR Step', async () => {
).toHaveText('Disabled');

// Go to Advanced Configuration step
await nextStep.click();
await moveForward(page);
// Go to Monitoring step
await nextStep.click();
await moveForward(page);

await checkDbWizardEditSubmitIsAvailableAndClick(page);
await checkSuccessOfUpdateAndGoToDbClustersList(page);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { findDbAndClickActions } from '../../../utils/db-clusters-list';
import { DbType } from '@percona/types';
import { getTokenFromLocalStorage } from '../../../utils/localStorage';
import { getNamespacesFn } from '../../../utils/namespaces';
import { moveForward } from '../../../utils/db-wizard';

test.describe('DB Cluster Editing Resources Step (Mongo)', () => {
const mongoDBName = 'mongo-db';
Expand All @@ -47,9 +48,8 @@ test.describe('DB Cluster Editing Resources Step (Mongo)', () => {
await page.goto('/databases');
await findDbAndClickActions(page, mongoDBName, 'Edit');

const nextStep = page.getByTestId('db-wizard-continue-button');
// Go to Resources step
await nextStep.click();
await moveForward(page);

expect(page.getByTestId('toggle-button-nodes-5')).toBeVisible();
const a = page
Expand Down
Loading
Loading