Skip to content

Commit 4f203f5

Browse files
Merge pull request #31373 from appsmithorg/release
29/02 Daily promotion
2 parents 54a72a8 + 45b81f9 commit 4f203f5

File tree

130 files changed

+1195
-1329
lines changed

Some content is hidden

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

130 files changed

+1195
-1329
lines changed

.github/config.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

.github/workflows/server-build.yml

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,10 +178,16 @@ jobs:
178178
args=()
179179
if [[ "${{ steps.run_result.outputs.run_result }}" == "failedtest" ]]; then
180180
failed_tests="${{ steps.failed_tests.outputs.tests }}"
181-
args+=("-DfailIfNoTests=false" "-Dtest=${failed_tests}")
181+
args+=("-DfailIfNoTests=false" "-Dsurefire.failIfNoSpecifiedTests=false" "-Dtest=${failed_tests}")
182182
fi
183-
args+=("-DtestResultFile=$PWD/failed-server-tests.txt")
184183
if ! mvn test "${args[@]}"; then
184+
gawk -F\" '/<testcase / {cur_test = $4 "#" $2} /<failure / {print cur_test}' $(find . -type f -name 'TEST-*.xml') \
185+
> failed-server-tests.txt
186+
echo "Report files found:"
187+
find . -type f -name 'TEST-*.xml'
188+
echo "Test case and failure lines:"
189+
grep -E 'testcase|failure' $(find . -type f -name 'TEST-*.xml')
190+
echo "No failed tests found"
185191
if [[ -s failed-server-tests.txt ]]; then
186192
content="$(
187193
echo "## Failed server tests"

app/client/cypress/e2e/Regression/ClientSide/Debugger/Api_pane_navigation_spec.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ describe(
3131
debuggerHelper.ClicklogEntityLink();
3232

3333
agHelper.AssertElementVisibility(apiPage._nextCursorValue);
34-
debuggerHelper.CloseBottomBar();
3534
entityExplorer.ActionContextMenuByEntityName({
3635
entityNameinLeftSidebar: "Api1",
3736
entityType: entityItems.Api,
@@ -51,11 +50,9 @@ describe(
5150
apiPage.SelectPaneTab("Headers");
5251
EditorNavigation.ShowCanvas();
5352
debuggerHelper.AssertErrorCount(1);
54-
debuggerHelper.ClickDebuggerIcon();
5553
debuggerHelper.ClicklogEntityLink();
5654

5755
agHelper.AssertElementVisibility(apiPage._bodyValue(0));
58-
debuggerHelper.CloseBottomBar();
5956
entityExplorer.ActionContextMenuByEntityName({
6057
entityNameinLeftSidebar: "Api2",
6158
entityType: entityItems.Api,
@@ -69,12 +66,11 @@ describe(
6966

7067
apiPage.SelectPaneTab("Pagination");
7168
EditorNavigation.ShowCanvas();
72-
debuggerHelper.ClickDebuggerIcon();
69+
// The Debugger should already be open here as it was opened before
7370
debuggerHelper.ClickLogsTab();
7471
debuggerHelper.ClicklogEntityLink(true);
7572

7673
agHelper.AssertElementVisibility(dataSources._queryTimeout);
77-
debuggerHelper.CloseBottomBar();
7874
entityExplorer.ActionContextMenuByEntityName({
7975
entityNameinLeftSidebar: "Api3",
8076
entityType: entityItems.Api,

app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/EntityBottomBar_spec.ts

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import * as _ from "../../../../support/Objects/ObjectsCore";
22
import { PageType } from "../../../../support/Pages/DebuggerHelper";
33
import EditorNavigation from "../../../../support/Pages/EditorNavigation";
44

5-
describe("Entity bottom bar", () => {
5+
describe("Entity bottom bar", { tags: ["@tag.Debugger"] }, () => {
66
it("1. Debugger should be closable", () => {
77
//Verify if bottom bar is closed.
88
_.debuggerHelper.AssertClosed();
@@ -32,17 +32,14 @@ describe("Entity bottom bar", () => {
3232
_.debuggerHelper.AssertSelectedTab("Response");
3333
//verify if bottom bar is closed on switching to canvas page.
3434
EditorNavigation.ShowCanvas();
35-
_.debuggerHelper.AssertSelectedTab("Errors");
35+
_.debuggerHelper.AssertClosed();
3636
});
3737

3838
it("3. Api bottom pane should be collapsable", () => {
3939
_.apiPage.CreateAndFillApi(
4040
_.dataManager.dsValues[_.dataManager.defaultEnviorment].mockApiUrl,
4141
);
42-
//Verify that the errors tab is still open.
43-
_.debuggerHelper.AssertSelectedTab("Errors");
44-
//Verify if bottom bar is closed on clicking close icon in API page.
45-
_.debuggerHelper.CloseBottomBar();
42+
//Verify that the errors tab is still closed.
4643
_.debuggerHelper.AssertClosed();
4744
//Verify if bottom bar opens on clicking debugger icon in api page.
4845
_.debuggerHelper.ClickDebuggerIcon();
@@ -60,12 +57,11 @@ describe("Entity bottom bar", () => {
6057
it("4. Bottom bar in Datasource", () => {
6158
//Verify if bottom bar remain open on shifting to create new datasource page.
6259
_.dataSources.NavigateToDSCreateNew();
63-
//Expecting errors tab to be closed as previous selected tab was response.
64-
//And response tab is not part of datasource page.
60+
//Expecting errors tab to be closed as this is now a datasource
6561
_.debuggerHelper.AssertClosed();
6662
//Verify if bottom bar opens on clicking debugger icon in datasource page.
6763
_.debuggerHelper.ClickDebuggerIcon();
68-
_.debuggerHelper.AssertClosed();
64+
_.debuggerHelper.AssertOpen(PageType.DataSources);
6965
});
7066

7167
it(

app/client/cypress/e2e/Regression/ClientSide/OtherUIFeatures/Logs2_spec.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ const generateTestLogString = () => {
1414
return logString;
1515
};
1616

17-
describe("Debugger logs", function () {
17+
describe("Debugger logs", { tags: ["@tag.Debugger"] }, function () {
1818
this.beforeEach(() => {
1919
logString = generateTestLogString();
2020
});
@@ -285,7 +285,8 @@ describe("Debugger logs", function () {
285285
});
286286

287287
EditorNavigation.SelectEntityByName("Page1", EntityType.Page);
288-
_.agHelper.GetNClick(_.locators._errorTab);
288+
_.agHelper.AssertElementVisibility(".t--debugger-count");
289+
_.debuggerHelper.ClickDebuggerIcon();
289290

290291
_.debuggerHelper.ClicklogEntityLink();
291292

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import {
2+
agHelper,
3+
homePage,
4+
locators,
5+
templates,
6+
} from "../../../../support/Objects/ObjectsCore";
7+
import reconnectDatasourceLocators from "../../../../locators/ReconnectLocators.js";
8+
9+
describe(
10+
"Create new application from template",
11+
{ tags: ["@tag.excludeForAirgap", "@tag.Workspace", "@tag.Templates"] },
12+
function () {
13+
beforeEach(() => {
14+
homePage.NavigateToHome();
15+
homePage.OpenTemplatesDialogInStartFromTemplates();
16+
});
17+
18+
it("1. Should be able to create new app from template list page", () => {
19+
agHelper.GetNClick(templates.locators._templatesCardForkButton);
20+
21+
agHelper.AssertElementVisibility(locators._sidebar);
22+
agHelper.AssertElementAbsence(locators._loading);
23+
});
24+
25+
it("2. Should be able to create new app from template detail page", () => {
26+
agHelper.GetNClick(templates.locators._templateCard);
27+
agHelper.GetNClick(templates.locators._templateViewForkButton);
28+
29+
agHelper.AssertElementVisibility(locators._sidebar);
30+
agHelper.AssertElementAbsence(locators._loading);
31+
});
32+
33+
it("3. When reconnect modal is shown, `start with templates` dialog should not be visible", () => {
34+
agHelper.GetNClick("//h1[text()='Customer Messaging Tool']");
35+
agHelper.GetNClick(templates.locators._templateViewForkButton);
36+
37+
agHelper.AssertElementVisibility(reconnectDatasourceLocators.Modal, true);
38+
agHelper.AssertElementAbsence(homePage._createAppFromTemplatesDialog);
39+
agHelper.GetNClick(reconnectDatasourceLocators.SkipToAppBtn, 0, true);
40+
agHelper.WaitUntilEleDisappear(reconnectDatasourceLocators.SkipToAppBtn);
41+
});
42+
},
43+
);

app/client/cypress/support/Pages/HomePage.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { REPO, CURRENT_REPO } from "../../fixtures/REPO";
33
import HomePageLocators from "../../locators/HomePage";
44
import SignupPageLocators from "../../locators/SignupPage.json";
55
import { AppSidebar, PageLeftPane } from "./EditorNavigation";
6-
6+
import { featureFlagIntercept } from "../Objects/FeatureFlags";
77
export class HomePage {
88
private agHelper = ObjectsRegistry.AggregateHelper;
99
private locator = ObjectsRegistry.CommonLocators;
@@ -60,6 +60,10 @@ export class HomePage {
6060
_appContainer = ".t--applications-container";
6161
_homePageAppCreateBtn = " .createnew";
6262
_newButtonCreateApplication = "[data-testid=t--workspace-action-create-app]";
63+
_newButtonCreateApplicationFromTemplates =
64+
"[data-testid=t--workspace-action-create-app-from-template]";
65+
_createAppFromTemplatesDialog =
66+
"[data-testid=t--create-app-from-templates-dialog-component]";
6367
_existingWorkspaceCreateNewApp = (existingWorkspaceName: string) =>
6468
`//span[text()='${existingWorkspaceName}']/ancestor::div[contains(@class, 't--workspace-section')]//button[contains(@class, 't--new-button')]`;
6569
_applicationName = ".t--application-name";
@@ -325,6 +329,15 @@ export class HomePage {
325329
if (appname) this.RenameApplication(appname);
326330
}
327331

332+
public OpenTemplatesDialogInStartFromTemplates() {
333+
featureFlagIntercept({
334+
release_show_create_app_from_templates_enabled: true,
335+
});
336+
this.agHelper.GetNClick(this._homePageAppCreateBtn, 0, true);
337+
this.agHelper.GetNClick(this._newButtonCreateApplicationFromTemplates);
338+
this.agHelper.AssertElementVisibility(this._createAppFromTemplatesDialog);
339+
}
340+
328341
//Maps to AppSetupForRename in command.js
329342
public RenameApplication(appName: string) {
330343
this.onboarding.closeIntroModal();

app/client/cypress/support/Pages/Templates.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ export class Templates {
88
_templatesTab: ".t--templates-tab",
99
_forkApp: ".t--fork-template",
1010
_templateCard: "[data-testid='template-card']",
11+
_templateViewForkButton: "[data-testid='template-fork-button']",
1112
_buildingBlockCardOnCanvas: "[data-testid='t--canvas-building-block-item']",
1213
_datasourceConnectPromptSubmitBtn:
1314
"[data-testid='t--datasource-connect-prompt-submit-btn']",
@@ -19,6 +20,7 @@ export class Templates {
1920
_requestForTemplateBtn: "span:contains('Request for a template')",
2021
_tempaltesFilterItem: "[data-testid='t--templates-filter-item']",
2122
_templateFilterItemSelectedIcon: `[data-testid="t--templates-filter-item-selected-icon"]`,
23+
_templatesCardForkButton: "[data-testid='t--fork-template-button']",
2224
};
2325

2426
FilterTemplatesByName(query: string) {

app/client/packages/design-system/widgets/src/components/Modal/src/styles.module.css

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
justify-content: center;
55
background: var(--color-bg-neutral-opacity);
66
z-index: var(--z-index-99);
7+
contain: strict;
78
}
89

910
.overlay .content {

app/client/src/actions/apiPaneActions.ts

Lines changed: 8 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { ReduxAction } from "@appsmith/constants/ReduxActionConstants";
22
import { ReduxActionTypes } from "@appsmith/constants/ReduxActionConstants";
33
import type { EventLocation } from "@appsmith/utils/analyticsUtilTypes";
44
import type { SlashCommandPayload } from "entities/Action";
5+
import type { ApiPaneDebuggerState } from "@appsmith/reducers/uiReducers/apiPaneReducer";
56

67
export const changeApi = (
78
id: string,
@@ -14,40 +15,6 @@ export const changeApi = (
1415
};
1516
};
1617

17-
export const initApiPane = (urlId?: string): ReduxAction<{ id?: string }> => {
18-
return {
19-
type: ReduxActionTypes.INIT_API_PANE,
20-
payload: { id: urlId },
21-
};
22-
};
23-
24-
export const setCurrentCategory = (
25-
category: string,
26-
): ReduxAction<{ category: string }> => {
27-
return {
28-
type: ReduxActionTypes.SET_CURRENT_CATEGORY,
29-
payload: { category },
30-
};
31-
};
32-
33-
export const setLastUsedEditorPage = (
34-
path: string,
35-
): ReduxAction<{ path: string }> => {
36-
return {
37-
type: ReduxActionTypes.SET_LAST_USED_EDITOR_PAGE,
38-
payload: { path },
39-
};
40-
};
41-
42-
export const setLastSelectedPage = (
43-
selectedPageId: string,
44-
): ReduxAction<{ selectedPageId: string }> => {
45-
return {
46-
type: ReduxActionTypes.SET_LAST_SELECTED_PAGE_PAGE,
47-
payload: { selectedPageId },
48-
};
49-
};
50-
5118
export const createNewApiAction = (
5219
pageId: string,
5320
from: EventLocation,
@@ -109,3 +76,10 @@ export const setApiRightPaneSelectedTab: (
10976
type: ReduxActionTypes.SET_API_RIGHT_PANE_SELECTED_TAB,
11077
payload: { selectedTab: payload },
11178
});
79+
80+
export const setApiPaneDebuggerState = (
81+
payload: Partial<ApiPaneDebuggerState>,
82+
) => ({
83+
type: ReduxActionTypes.SET_API_PANE_DEBUGGER_STATE,
84+
payload,
85+
});

0 commit comments

Comments
 (0)