Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test: Mock DBaaS feature flag in Cypress tests #9715

Merged
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
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,14 @@ import {
mockCreateDatabase,
mockGetDatabases,
} from 'support/intercepts/databases';
import {
mockAppendFeatureFlags,
mockGetFeatureFlagClientstream,
} from 'support/intercepts/feature-flags';
import { mockGetEvents } from 'support/intercepts/events';
import { getRegionById } from 'support/util/regions';
import { ui } from 'support/ui';
import { makeFeatureFlagData } from 'support/util/feature-flags';

describe('create a database cluster, mocked data', () => {
databaseConfigurations.forEach(
Expand Down Expand Up @@ -62,10 +67,16 @@ describe('create a database cluster, mocked data', () => {
? 'Dedicated CPU'
: 'Shared CPU';

mockAppendFeatureFlags({
databases: makeFeatureFlagData(true),
}).as('getFeatureFlags');
mockGetFeatureFlagClientstream().as('getClientstream');
mockCreateDatabase(databaseMock).as('createDatabase');
mockGetDatabases([databaseMock]).as('getDatabases');

cy.visitWithLogin('/databases/create');
cy.wait(['@getFeatureFlags', '@getClientstream']);

ui.entityHeader
.find()
.should('be.visible')
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,16 @@ import {
mockDeleteProvisioningDatabase,
mockGetDatabase,
} from 'support/intercepts/databases';
import {
mockAppendFeatureFlags,
mockGetFeatureFlagClientstream,
} from 'support/intercepts/feature-flags';
import { ui } from 'support/ui';
import {
databaseClusterConfiguration,
databaseConfigurations,
} from 'support/constants/databases';
import { makeFeatureFlagData } from 'support/util/feature-flags';

describe('Delete database clusters', () => {
databaseConfigurations.forEach(
Expand All @@ -36,13 +41,17 @@ describe('Delete database clusters', () => {
allow_list: [allowedIp],
});

mockAppendFeatureFlags({
databases: makeFeatureFlagData(true),
}).as('getFeatureFlags');
mockGetFeatureFlagClientstream().as('getClientstream');
mockGetDatabase(database).as('getDatabase');
mockDeleteDatabase(database.id, database.engine).as('deleteDatabase');

cy.visitWithLogin(
`/databases/${database.engine}/${database.id}/settings`
);
cy.wait('@getDatabase');
cy.wait(['@getFeatureFlags', '@getClientstream', '@getDatabase']);

// Click "Delete Cluster" button.
ui.button
Expand Down Expand Up @@ -92,6 +101,10 @@ describe('Delete database clusters', () => {
const errorMessage =
'Your database is provisioning; please wait until provisioning is complete to perform this operation.';

mockAppendFeatureFlags({
databases: makeFeatureFlagData(true),
}).as('getFeatureFlags');
mockGetFeatureFlagClientstream().as('getClientstream');
mockGetDatabase(database).as('getDatabase');
mockDeleteProvisioningDatabase(
database.id,
Expand All @@ -102,7 +115,7 @@ describe('Delete database clusters', () => {
cy.visitWithLogin(
`/databases/${database.engine}/${database.id}/settings`
);
cy.wait('@getDatabase');
cy.wait(['@getFeatureFlags', '@getClientstream', '@getDatabase']);

// Click "Delete Cluster" button.
ui.button
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,11 @@ import {
mockUpdateDatabase,
mockUpdateProvisioningDatabase,
} from 'support/intercepts/databases';
import {
mockAppendFeatureFlags,
mockGetFeatureFlagClientstream,
} from 'support/intercepts/feature-flags';
import { makeFeatureFlagData } from 'support/util/feature-flags';
import {
databaseClusterConfiguration,
databaseConfigurations,
Expand Down Expand Up @@ -164,6 +169,10 @@ describe('Update database clusters', () => {
allow_list: [allowedIp],
});

mockAppendFeatureFlags({
databases: makeFeatureFlagData(true),
}).as('getFeatureFlags');
mockGetFeatureFlagClientstream().as('getClientstream');
mockGetDatabase(database).as('getDatabase');
mockResetPassword(database.id, database.engine).as(
'resetRootPassword'
Expand All @@ -175,7 +184,7 @@ describe('Update database clusters', () => {
).as('getCredentials');

cy.visitWithLogin(`/databases/${database.engine}/${database.id}`);
cy.wait('@getDatabase');
cy.wait(['@getDatabase', '@getFeatureFlags', '@getClientstream']);

cy.get('[data-qa-cluster-config]').within(() => {
cy.findByText(configuration.region.label).should('be.visible');
Expand Down Expand Up @@ -276,6 +285,12 @@ describe('Update database clusters', () => {
'Your database is provisioning; please wait until provisioning is complete to perform this operation.';
const hostnameRegex = /your hostnames? will appear here once (it is|they are) available./i;

mockAppendFeatureFlags({
databases: makeFeatureFlagData(true),
}).as('getFeatureFlags');

mockGetFeatureFlagClientstream().as('getClientstream');

mockGetDatabase(database).as('getDatabase');

mockUpdateProvisioningDatabase(
Expand All @@ -291,7 +306,7 @@ describe('Update database clusters', () => {
).as('resetRootPassword');

cy.visitWithLogin(`/databases/${database.engine}/${database.id}`);
cy.wait('@getDatabase');
cy.wait(['@getDatabase', '@getFeatureFlags', '@getClientstream']);

// Cannot update database label.
updateDatabaseLabel(initialLabel, updateAttemptLabel);
Expand Down