Skip to content

Commit

Permalink
EVEREST-1724-sharding-is-reset-to-default (#916)
Browse files Browse the repository at this point in the history
* EVEREST-1724-sharding-is-reset-to-default

* EVEREST-1724-sharding-is-reset-to-default
  • Loading branch information
solovevayaroslavna authored Dec 10, 2024
1 parent 9e2548d commit f6db4b0
Show file tree
Hide file tree
Showing 4 changed files with 98 additions and 44 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -391,40 +391,4 @@ test.describe('DB Cluster creation', () => {
await fillScheduleModalForm(page, undefined, undefined, false, '1');
await expect(page.getByTestId('same-schedule-warning')).toBeVisible();
});

test('Mongo with sharding should not pass multinode cluster creation if config servers = 1', async ({
page,
}) => {
expect(storageClasses.length).toBeGreaterThan(0);
await selectDbEngine(page, 'psmdb');

await page.getByTestId('switch-input-sharding').click();
await moveForward(page);

await expect(page.getByTestId(`toggle-button-routers-3`)).toHaveAttribute(
'aria-pressed',
'true'
);

await expect(page.getByTestId('shard-config-servers-3')).toHaveAttribute(
'aria-pressed',
'true'
);

await page.getByTestId('shard-config-servers-1').click();
expect(page.getByTestId('shard-config-servers-error')).toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).toBeDisabled();

await page.getByTestId('toggle-button-nodes-1').click();
expect(page.getByTestId('shard-config-servers-error')).not.toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).not.toBeDisabled();

await page.getByTestId('toggle-button-nodes-3').click();
expect(page.getByTestId('shard-config-servers-error')).toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).toBeDisabled();

await page.getByTestId('shard-config-servers-3').click();
expect(page.getByTestId('shard-config-servers-error')).not.toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).not.toBeDisabled();
});
});
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
import { EVEREST_CI_NAMESPACES } from '@e2e/constants';
import { getEnginesVersions } from '@e2e/utils/database-engines';
import { getTokenFromLocalStorage } from '@e2e/utils/localStorage';
import { getClusterDetailedInfo } from '@e2e/utils/storage-class';
import { expect, test } from '@playwright/test';
import { selectDbEngine } from '../db-wizard-utils';
import { moveBack, moveForward } from '@e2e/utils/db-wizard';

test.describe('DB Cluster creation', () => {
// IST is UTC+5h30, with or without DST
test.use({
timezoneId: 'IST',
});

let engineVersions = {
pxc: [],
psmdb: [],
postgresql: [],
};
let storageClasses = [];
// let monitoringInstancesList = [];
const namespace = EVEREST_CI_NAMESPACES.EVEREST_UI;

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

const { storageClassNames = [] } = await getClusterDetailedInfo(
token,
request
);
storageClasses = storageClassNames;
});

test.beforeEach(async ({ page }) => {
await page.goto('/databases');
});

test('Mongo with sharding should not pass multinode cluster creation if config servers = 1', async ({
page,
}) => {
expect(storageClasses.length).toBeGreaterThan(0);
await selectDbEngine(page, 'psmdb');

await page.getByTestId('switch-input-sharding').click();
await moveForward(page);

await expect(page.getByTestId(`toggle-button-routers-3`)).toHaveAttribute(
'aria-pressed',
'true'
);

await expect(page.getByTestId('shard-config-servers-3')).toHaveAttribute(
'aria-pressed',
'true'
);

await page.getByTestId('shard-config-servers-1').click();
expect(page.getByTestId('shard-config-servers-error')).toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).toBeDisabled();

await page.getByTestId('toggle-button-nodes-1').click();
expect(page.getByTestId('shard-config-servers-error')).not.toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).not.toBeDisabled();

await page.getByTestId('toggle-button-nodes-3').click();
expect(page.getByTestId('shard-config-servers-error')).toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).toBeDisabled();

await page.getByTestId('shard-config-servers-3').click();
expect(page.getByTestId('shard-config-servers-error')).not.toBeVisible();
expect(page.getByTestId('db-wizard-continue-button')).not.toBeDisabled();
});

test('Sharding is not reset to default when returning to the previous step of the form in dbWizard', async ({
page,
}) => {
expect(storageClasses.length).toBeGreaterThan(0);
await selectDbEngine(page, 'psmdb');

await page.getByTestId('switch-input-sharding').click();
expect(page.getByTestId('switch-input-sharding')).toBeEnabled();

await moveForward(page);
await moveBack(page);

expect(page.getByTestId('switch-input-sharding')).toBeEnabled();

await moveForward(page);
await moveForward(page);

await page.getByTestId('edit-section-1').click();

await page.getByTestId('switch-input-sharding').waitFor();
expect(page.getByTestId('switch-input-sharding')).toBeEnabled();
});
});
6 changes: 1 addition & 5 deletions ui/apps/everest/.e2e/pr/multinamespaces/db-wizard.e2e.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,10 +15,7 @@

import { test, expect } from '@playwright/test';
import { EVEREST_CI_NAMESPACES } from '@e2e/constants';
import {
checkAmountOfDbEngines,
selectDbEngine,
} from '../db-cluster/db-wizard/db-wizard-utils';
import { checkAmountOfDbEngines } from '../db-cluster/db-wizard/db-wizard-utils';
import { cancelWizard } from '@e2e/utils/db-wizard';
import { DbEngineType } from '@percona/types';

Expand All @@ -28,7 +25,6 @@ test.describe('Namespaces DB Wizard', () => {
}) => {
await page.goto('/databases');
for (let i = 0; i < 3; i++) {
await page.pause();
const dbEnginesButtons = await checkAmountOfDbEngines(page);
expect(await dbEnginesButtons.count()).toBe(3);
const dbEngineType = (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -222,9 +222,6 @@ export const FirstStep = ({ loadingDefaultsForEdition }: StepProps) => {
resetField(DbWizardFormFields.shardConfigServers, {
keepError: false,
});
resetField(DbWizardFormFields.sharding, {
keepError: false,
});
}, []);

useEffect(() => {
Expand Down

0 comments on commit f6db4b0

Please sign in to comment.