Skip to content

Commit 97d0fb5

Browse files
Merge branch 'release' into user-login-messages-fix
2 parents 3dba2ed + e9cca6a commit 97d0fb5

File tree

90 files changed

+1770
-548
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+1770
-548
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,191 @@
1+
name: 📊 Project Estimation
2+
description: A comprehensive checklist for estimating project scope and requirements
3+
title: "[Estimation]: "
4+
labels: [Project Planning, Needs Review]
5+
body:
6+
- type: markdown
7+
attributes:
8+
value: |
9+
Thanks for taking the time to create this project estimation! Please fill out all relevant sections to ensure comprehensive planning.
10+
- type: textarea
11+
attributes:
12+
label: Project Overview
13+
description: Brief description of the project and its goals
14+
placeholder: |
15+
Provide a high-level overview of the project, its objectives, and expected outcomes.
16+
validations:
17+
required: true
18+
- type: textarea
19+
attributes:
20+
label: Dependencies
21+
description: List all internal and external dependencies
22+
placeholder: |
23+
## Internal Dependencies
24+
- Teams/systems your work depends on
25+
- Cross-functional needs
26+
27+
## External Dependencies
28+
- Third-party services
29+
- License approvals needed
30+
31+
## Documentation Dependencies
32+
- Required documentation with owners and timelines
33+
validations:
34+
required: true
35+
- type: textarea
36+
attributes:
37+
label: Scope & Requirements
38+
description: Document clear requirements and acceptance criteria
39+
placeholder: |
40+
## Requirements
41+
- List key requirements
42+
- Acceptance criteria
43+
44+
## Known Assumptions
45+
- List assumptions
46+
- Impact of assumptions
47+
48+
## Stakeholder Alignment
49+
- Key stakeholders
50+
- Priority alignment
51+
validations:
52+
required: true
53+
- type: textarea
54+
attributes:
55+
label: Technical Considerations
56+
description: Document technical architecture and considerations
57+
placeholder: |
58+
## Architecture
59+
- Design approach
60+
- Tech stack details
61+
62+
## Technical Requirements
63+
- Scalability needs
64+
- Security considerations
65+
- Performance requirements
66+
67+
## Testing Strategy
68+
- Unit testing approach
69+
- Integration testing
70+
- E2E testing
71+
- Test automation coverage
72+
validations:
73+
required: true
74+
- type: textarea
75+
attributes:
76+
label: CI/CD Pipeline
77+
description: Document CI/CD requirements and considerations
78+
placeholder: |
79+
## Pipeline Requirements
80+
- Build process
81+
- Deployment strategy
82+
- Rollback procedures
83+
84+
## Monitoring
85+
- Required metrics
86+
- Alerting setup
87+
validations:
88+
required: true
89+
- type: textarea
90+
attributes:
91+
label: Reviews & Approvals
92+
description: Document required reviews and approvals
93+
placeholder: |
94+
## Required Reviews
95+
- Code review process
96+
- Design review requirements
97+
- Security review needs
98+
- Compliance requirements
99+
validations:
100+
required: true
101+
- type: textarea
102+
attributes:
103+
label: Testing Requirements
104+
description: Document testing requirements and approach
105+
placeholder: |
106+
## Testing Scope
107+
- Test data requirements
108+
- Environment needs
109+
- Test case management
110+
- Performance testing requirements
111+
validations:
112+
required: true
113+
- type: textarea
114+
attributes:
115+
label: Release & Deployment
116+
description: Document release and deployment strategy
117+
placeholder: |
118+
## Release Strategy
119+
- Phased rollout plan
120+
- Deployment steps
121+
- Monitoring plan
122+
- Rollback procedures
123+
validations:
124+
required: true
125+
- type: textarea
126+
attributes:
127+
label: Documentation Requirements
128+
description: Document required documentation
129+
placeholder: |
130+
## Required Documentation
131+
- Technical documentation
132+
- User documentation
133+
- Knowledge transfer needs
134+
validations:
135+
required: true
136+
- type: textarea
137+
attributes:
138+
label: Resource Allocation
139+
description: Document resource requirements
140+
placeholder: |
141+
## Team Resources
142+
- Required team members
143+
- Skill requirements
144+
- Training needs
145+
146+
## External Resources
147+
- Contractor needs
148+
- Tooling requirements
149+
validations:
150+
required: true
151+
- type: textarea
152+
attributes:
153+
label: Risk Management
154+
description: Document risks and mitigation strategies
155+
placeholder: |
156+
## Identified Risks
157+
- Technical risks
158+
- Timeline risks
159+
- External dependencies
160+
161+
## Mitigation Strategies
162+
- Risk mitigation plans
163+
- Contingency buffers
164+
validations:
165+
required: true
166+
- type: textarea
167+
attributes:
168+
label: Project Management
169+
description: Document project management approach
170+
placeholder: |
171+
## Work Breakdown
172+
- Task breakdown
173+
- Effort estimation
174+
- Timeline estimates
175+
176+
## Tracking
177+
- Progress tracking method
178+
- Buffer allocation
179+
validations:
180+
required: true
181+
- type: textarea
182+
attributes:
183+
label: Post-Release
184+
description: Document post-release requirements
185+
placeholder: |
186+
## Post-Release Activities
187+
- Monitoring requirements
188+
- Feedback collection
189+
- Retrospective planning
190+
validations:
191+
required: true

app/client/cypress/e2e/Regression/ClientSide/ActionExecution/ActionSelector_JsToNonJSMode_4_spec.ts

+25
Original file line numberDiff line numberDiff line change
@@ -78,5 +78,30 @@ describe(
7878
);
7979
});
8080
});
81+
82+
it("3. should logout user successfully using global logoutUser function and should redirect to the url provided with multiple query params", () => {
83+
let applicationUrl = "";
84+
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);
85+
EditorNavigation.SelectEntityByName("Button1", EntityType.Widget);
86+
propPane.EnterJSContext(
87+
"onClick",
88+
"{{logoutUser('/abc/def?test1=123&test2=456')}}",
89+
true,
90+
false,
91+
);
92+
cy.location().then((loc) => {
93+
propPane.ToggleJSMode("onClick", false);
94+
propPane.UpdatePropertyFieldValue("Label", "");
95+
propPane.TypeTextIntoField("Label", "LOGOUT GLOBAL");
96+
agHelper.ClickButton("LOGOUT GLOBAL");
97+
cy.location().should((loc) => {
98+
expect(loc.pathname).to.eq("/user/login");
99+
expect(loc.search).to.eq(
100+
"?redirectUrl=" +
101+
encodeURIComponent("/abc/def?test1=123&test2=456"),
102+
);
103+
});
104+
});
105+
});
81106
},
82107
);

app/client/cypress/e2e/Regression/ClientSide/AdminSettings/Admin_settings_spec.ts

+23-14
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,21 @@ describe("Admin settings page", { tags: ["@tag.Settings"] }, function () {
6868
cy.wait("@getEnvVariables");
6969
agHelper.GetNClick(adminsSettings.generalTab);
7070
agHelper.AssertURL(adminSettingsHelper.routes.GENERAL);
71-
agHelper.GetNClick(adminsSettings.advancedTab);
72-
agHelper.AssertURL(adminSettingsHelper.routes.ADVANCED);
73-
agHelper.GetNClick(adminsSettings.authenticationTab);
74-
agHelper.AssertURL(adminSettingsHelper.routes.AUTHENTICATION);
7571
agHelper.GetNClick(adminsSettings.emailTab);
7672
agHelper.AssertURL(adminSettingsHelper.routes.EMAIL);
77-
agHelper.AssertElementAbsence(adminsSettings.developerSettingsTab);
73+
agHelper.GetNClick(adminsSettings.authenticationTab);
74+
agHelper.AssertURL(adminSettingsHelper.routes.AUTHENTICATION);
75+
agHelper.GetNClick(adminsSettings.instanceSettingsTab);
76+
agHelper.AssertURL(adminSettingsHelper.routes.INSTANCE_SETTINGS);
77+
agHelper.AssertElementAbsence(adminSettingsHelper._googleMapsAPIField);
78+
agHelper.GetNClick(adminsSettings.configurationTab);
79+
agHelper.AssertURL(adminSettingsHelper.routes.CONFIGURATION);
7880
agHelper.GetNClick(adminsSettings.versionTab);
7981
agHelper.AssertURL(adminSettingsHelper.routes.VERSION);
82+
agHelper.GetNClick(adminsSettings.userSettingsTab);
83+
agHelper.AssertURL(adminSettingsHelper.routes.USER_SETTINGS);
84+
agHelper.GetNClick(adminsSettings.branding);
85+
agHelper.AssertURL(adminSettingsHelper.routes.BRANDING);
8086
},
8187
);
8288

@@ -122,7 +128,7 @@ describe("Admin settings page", { tags: ["@tag.Settings"] }, function () {
122128

123129
it("7. Should test save and clear buttons disabled state", () => {
124130
agHelper.VisitNAssert(
125-
adminSettingsHelper.routes.GENERAL,
131+
adminSettingsHelper.routes.INSTANCE_SETTINGS,
126132
"getEnvVariables",
127133
);
128134
const assertVisibilityAndDisabledState = () => {
@@ -144,7 +150,7 @@ describe("Admin settings page", { tags: ["@tag.Settings"] }, function () {
144150

145151
it("8. Should test saving a setting value", () => {
146152
agHelper.VisitNAssert(
147-
adminSettingsHelper.routes.GENERAL,
153+
adminSettingsHelper.routes.INSTANCE_SETTINGS,
148154
"getEnvVariables",
149155
);
150156

@@ -169,7 +175,7 @@ describe("Admin settings page", { tags: ["@tag.Settings"] }, function () {
169175

170176
it("9.Should test saving settings value from different tabs", () => {
171177
agHelper.VisitNAssert(
172-
adminSettingsHelper.routes.GENERAL,
178+
adminSettingsHelper.routes.INSTANCE_SETTINGS,
173179
"getEnvVariables",
174180
);
175181
agHelper.AssertElementAbsence(adminsSettings.restartNotice);
@@ -213,6 +219,7 @@ describe("Admin settings page", { tags: ["@tag.Settings"] }, function () {
213219
agHelper.WaitUntilEleAppear(adminSettingsHelper._adminSettingsBtn);
214220
agHelper.GetNClick(adminSettingsHelper._adminSettingsBtn);
215221
agHelper.AssertURL(adminSettingsHelper.routes.GENERAL);
222+
agHelper.GetNClick(adminsSettings.instanceSettingsTab);
216223
cy.wait("@getEnvVariables");
217224
agHelper
218225
.GetText(adminSettingsHelper._instanceName, "val")
@@ -233,14 +240,16 @@ describe("Admin settings page", { tags: ["@tag.Settings"] }, function () {
233240
cy.wait("@getEnvVariables");
234241
agHelper.GetNClick(adminsSettings.generalTab);
235242
agHelper.AssertURL(adminSettingsHelper.routes.GENERAL);
236-
agHelper.GetNClick(adminsSettings.advancedTab);
237-
agHelper.AssertURL(adminSettingsHelper.routes.ADVANCED);
238-
agHelper.GetNClick(adminsSettings.authenticationTab);
239-
agHelper.AssertURL(adminSettingsHelper.routes.AUTHENTICATION);
240243
agHelper.GetNClick(adminsSettings.emailTab);
241244
agHelper.AssertURL(adminSettingsHelper.routes.EMAIL);
242-
agHelper.GetNClick(adminsSettings.developerSettingsTab);
243-
agHelper.AssertURL(adminSettingsHelper.routes.DEVELOPER_SETTINGS);
245+
agHelper.GetNClick(adminsSettings.authenticationTab);
246+
agHelper.AssertURL(adminSettingsHelper.routes.AUTHENTICATION);
247+
agHelper.GetNClick(adminsSettings.instanceSettingsTab);
248+
agHelper.AssertURL(adminSettingsHelper.routes.INSTANCE_SETTINGS);
249+
agHelper.GetNClick(adminsSettings.configurationTab);
250+
agHelper.AssertURL(adminSettingsHelper.routes.CONFIGURATION);
251+
agHelper.GetNClick(adminsSettings.userSettingsTab);
252+
agHelper.AssertURL(adminSettingsHelper.routes.USER_SETTINGS);
244253
agHelper.GetNClick(adminsSettings.versionTab);
245254
agHelper.AssertURL(adminSettingsHelper.routes.VERSION);
246255
agHelper.GetNClick(adminsSettings.branding);

app/client/cypress/e2e/Regression/ClientSide/AdminSettings/Email_settings_Spec.ts

+2
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,8 @@ describe(
4444
cy.LoginFromAPI(Cypress.env("USERNAME"), Cypress.env("PASSWORD"));
4545
adminSettings.NavigateToAdminSettings();
4646
agHelper.AssertElementVisibility(AdminsSettings.LeftPaneBrandingLink);
47+
agHelper.GetNClick(AdminsSettings.instanceSettingsTab);
48+
4749
cy.get(AdminsSettings.addEmailGhostInput)
4850
.click({ force: true })
4951
.type(fromEmail);

app/client/cypress/e2e/Regression/ClientSide/AdminSettings/General_settings_Spec.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ describe(
1313
it("1. TC# 2439 Verify 'Page title' changes upon changing Instance name", () => {
1414
featureFlagIntercept({ license_branding_enabled: true });
1515
adminSettings.NavigateToAdminSettings();
16+
agHelper.GetNClick(AdminsSettings.instanceSettingsTab);
1617
agHelper.WaitUntilEleAppear(adminSettings._instanceName);
1718
agHelper.ClearNType(adminSettings._instanceName, "Testing Instance name");
1819
agHelper.ClickOutside();
@@ -26,11 +27,12 @@ describe(
2627
it("2. TC# 2439 Verify 'Page title' does not change upon changing Instance name in free plan", () => {
2728
featureFlagIntercept({ license_branding_enabled: false });
2829
adminSettings.NavigateToAdminSettings();
30+
agHelper.GetNClick(AdminsSettings.instanceSettingsTab);
2931
agHelper.ClearNType(
3032
adminSettings._instanceName,
3133
"Testing Instance name 2",
3234
);
33-
agHelper.ClickButton("Save");
35+
agHelper.GetNClick(AdminsSettings.saveButton, 0, true);
3436
agHelper.ValidateToastMessage("Successfully saved");
3537
cy.title().should("eq", "Appsmith");
3638
});

app/client/cypress/e2e/Regression/ClientSide/Anvil/AppTheming/AnvilAppThemingSnapshot_spec.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ describe(
6060
});
6161

6262
it("5. Corners", () => {
63-
["0px", "6px", "20px"].forEach((corner) => {
63+
["0px", "8px", "20px"].forEach((corner) => {
6464
anvilSnapshot.setCorners(corner);
6565

6666
anvilSnapshot.matchSnapshotForCanvasMode(`AppThemingCorner${corner}`);

app/client/cypress/e2e/Regression/ClientSide/EmbedSettings/EmbedSettings_spec.js

+3
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@ describe("Embed settings options", { tags: ["@tag.Settings"] }, function () {
7676

7777
it("1. Limit embedding then Allow embedding everywhere then Disable everywhere", function () {
7878
cy.get(".admin-settings-menu-option").click();
79+
_.agHelper.GetNClick(adminSettings.configurationTab);
7980
cy.get(".t--admin-settings-APPSMITH_ALLOWED_FRAME_ANCESTORS").within(() => {
8081
cy.get("input").eq(1).click();
8182
cy.get(".bp3-input-ghost").type(window.location.origin).blur();
@@ -92,6 +93,7 @@ describe("Embed settings options", { tags: ["@tag.Settings"] }, function () {
9293
// it("2. Allow embedding everywhere", function () {
9394
_.homePage.NavigateToHome();
9495
cy.get(".admin-settings-menu-option").click();
96+
_.agHelper.GetNClick(adminSettings.configurationTab);
9597
cy.get(".t--admin-settings-APPSMITH_ALLOWED_FRAME_ANCESTORS").within(() => {
9698
cy.get("input").eq(0).click();
9799
});
@@ -106,6 +108,7 @@ describe("Embed settings options", { tags: ["@tag.Settings"] }, function () {
106108
// it("3. Disable everywhere", function () {
107109
_.homePage.NavigateToHome();
108110
cy.get(".admin-settings-menu-option").click();
111+
_.agHelper.GetNClick(adminSettings.configurationTab);
109112
cy.get(".t--admin-settings-APPSMITH_ALLOWED_FRAME_ANCESTORS").within(() => {
110113
cy.get("input").last().click();
111114
});

0 commit comments

Comments
 (0)