PromucFlow_constructor/app/client/cypress/support/Objects/FeatureFlags.ts
Vemparala Surya Vamsi 4b27a59b1c
chore: remove feature flag code of consolidated api (#32248)
Removed feature flag related code to consolidated api, also corrections
in feature flags are made here.

Fixes #31100

## Automation

/ok-to-test tags="@tag.All"

### 🔍 Cypress test results
<!-- This is an auto-generated comment: Cypress test results  -->
> [!TIP]
> Tests running at:
<https://github.com/appsmithorg/appsmith/actions/runs/8490467344>
> Commit: `fce48b210983689994152b7ae77c773cfdca854a`
> Workflow: `PR Automation test suite`
> Tags: ``

<!-- end of auto-generated comment: Cypress test results  -->











<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Introduced new feature flags to enhance user interface and default
settings.
- **Refactor**
	- Simplified page loading logic for better performance.
	- Enhanced error handling and reporting for a smoother user experience.
- **Chores**
	- Cleaned up unused imports and code for better maintainability.
- **Bug Fixes**
- Removed redundant checks and updated functionality to include new
feature flags.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2024-04-01 17:45:09 +05:30

109 lines
3.2 KiB
TypeScript

import { LICENSE_FEATURE_FLAGS } from "../Constants";
import { ObjectsRegistry } from "./Registry";
import produce from "immer";
export const featureFlagIntercept = (
flags: Record<string, boolean> = {},
reload = true,
) => {
getConsolidatedDataApi(flags, false);
const response = {
responseMeta: {
status: 200,
success: true,
},
data: {
...flags,
release_show_new_sidebar_pages_pane_enabled: true,
release_side_by_side_ide_enabled: true,
},
errorDisplay: "",
};
cy.intercept("GET", "/api/v1/users/features", response);
if (reload) ObjectsRegistry.AggregateHelper.CypressReload();
};
export const getConsolidatedDataApi = (
flags: Record<string, boolean> = {},
reload = true,
) => {
cy.intercept("GET", "/api/v1/consolidated-api/*?*", (req) => {
req.reply((res: any) => {
if (
res.statusCode === 200 ||
res.statusCode === 401 ||
res.statusCode === 500
) {
const originalResponse = res?.body;
const updatedResponse = produce(originalResponse, (draft: any) => {
draft.data.featureFlags.data = { ...flags };
draft.data.featureFlags.data["release_app_sidebar_enabled"] = true;
draft.data.featureFlags.data[
"release_show_new_sidebar_pages_pane_enabled"
] = true;
});
return res.send(updatedResponse);
}
});
}).as("getConsolidatedData");
if (reload) ObjectsRegistry.AggregateHelper.CypressReload();
};
export const featureFlagInterceptForLicenseFlags = () => {
cy.intercept(
{
method: "GET",
url: "/api/v1/users/features",
},
(req) => {
req.reply((res) => {
if (res) {
const originalResponse = res.body;
let modifiedResponse: any = {};
Object.keys(originalResponse.data).forEach((flag) => {
if (LICENSE_FEATURE_FLAGS.includes(flag)) {
modifiedResponse[flag] = originalResponse.data[flag];
}
});
modifiedResponse = {
...modifiedResponse,
release_app_sidebar_enabled: true,
};
res.send({
responseMeta: {
status: 200,
success: true,
},
data: { ...modifiedResponse },
errorDisplay: "",
});
}
});
},
).as("getLicenseFeatures");
cy.intercept("GET", "/api/v1/consolidated-api/*?*", (req) => {
req.reply((res: any) => {
if (res.statusCode === 200) {
const originalResponse = res?.body;
const updatedResponse = produce(originalResponse, (draft: any) => {
draft.data.featureFlags.data = {};
Object.keys(originalResponse.data.featureFlags.data).forEach(
(flag) => {
if (LICENSE_FEATURE_FLAGS.includes(flag)) {
draft.data.featureFlags.data[flag] =
originalResponse.data.featureFlags.data[flag];
}
},
);
draft.data.featureFlags.data["release_app_sidebar_enabled"] = true;
});
return res.send(updatedResponse);
}
});
}).as("getConsolidatedData");
ObjectsRegistry.AggregateHelper.CypressReload();
};