-
Notifications
You must be signed in to change notification settings - Fork 3.8k
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: adding test for page functionality #38538
Changes from 6 commits
a6b9337
9ae5a1d
7d659ee
db56bcc
669a866
8a17ba3
350932c
3de9a64
88c823d
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
@@ -0,0 +1,139 @@ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import EditorNavigation, { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EntityType, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageLeftPane, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} from "../../../../support/Pages/EditorNavigation"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
draggableWidgets, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityExplorer, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityItems, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
homePage, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locators, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
propPane, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
} from "../../../../support/Objects/ObjectsCore"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
import PageList from "../../../../support/Pages/PageList"; | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
describe("Check Page Actions Menu", {}, function () { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
it("1. Verify Page Actions when a page is selected", function () { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
homePage.RenameApplication("PageActions"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.AddNewPage("New blank page"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityExplorer.DragDropWidgetNVerify(draggableWidgets.TEXT, 500, 100); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetNClick(entityExplorer._contextMenu("Page2"), 0, true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetNClick(locators._contextMenuItem("Rename")); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.TypeText(propPane._placeholderName, `NewPage{enter}`, { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parseSpecialCharSeq: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ClonePage("NewPage"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.HidePage("NewPage Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.AssertAttribute( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locators._entityTestId("NewPage Copy"), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"disabled", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"disabled", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.DeletePage("NewPage Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.assertAbsence("NewPage Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EditorNavigation.NavigateToPage("NewPage", true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityExplorer.ActionContextMenuByEntityName({ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityNameinLeftSidebar: "NewPage", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
action: "Set as home page", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityType: entityItems.Page, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetElement(locators._entityTestId("NewPage")).within(() => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.AssertElementExist(locators._homeIcon); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityExplorer.ActionContextMenuByEntityName({ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityNameinLeftSidebar: "Page1", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
action: "Set as home page", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityType: entityItems.Page, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetElement(locators._entityTestId("Page1")).within(() => { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.AssertElementExist(locators._homeIcon); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EditorNavigation.NavigateToPage("NewPage", true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.OpenExportModal("NewPage"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.PartiallyExportFile( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.locators.export.modelContents.widgetsSection, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
["Text1"], | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
//Import the exported App | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.OpenImportModal("NewPage"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.ImportPartiallyExportedFile( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"PageActions.json", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"Widgets", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
["Text1"], | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"downloads", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
it("2. Verify Page Actions when a page is not selected", function () { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EditorNavigation.NavigateToPage("Page1", true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetNClick(entityExplorer._contextMenu("NewPage"), 0, true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetNClick(locators._contextMenuItem("Rename")); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.TypeText(propPane._placeholderName, `Page2{enter}`, { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parseSpecialCharSeq: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ClonePage("Page2"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EditorNavigation.NavigateToPage("Page1", true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.HidePage("Page2 Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.AssertAttribute( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locators._entityTestId("Page2 Copy"), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"disabled", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"disabled", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.DeletePage("Page2 Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.assertAbsence("Page2 Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
it("3. Verify Page Actions when a home page is selected", function () { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
entityExplorer.DragDropWidgetNVerify(draggableWidgets.TEXT, 500, 100); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetNClick(entityExplorer._contextMenu("Page1"), 0, true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.GetNClick(locators._contextMenuItem("Rename")); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.TypeText(propPane._placeholderName, `HomePage{enter}`, { | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
parseSpecialCharSeq: true, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ClonePage("HomePage"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.HidePage("HomePage Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.ShowList(); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
agHelper.AssertAttribute( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
locators._entityTestId("HomePage Copy"), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"disabled", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"disabled", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.DeletePage("HomePage Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
PageList.assertAbsence("HomePage Copy"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EditorNavigation.NavigateToPage("HomePage", true); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.OpenExportModal("HomePage"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.PartiallyExportFile( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.locators.export.modelContents.widgetsSection, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
["Text1"], | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
//Import the exported App | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.OpenImportModal("HomePage"); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
partialImportExport.ImportPartiallyExportedFile( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"PageActions.json", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"Widgets", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
["Text1"], | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
"downloads", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+123
to
+137
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Extract export/import logic to reusable helper The export/import logic is duplicated from test case 1. Consider extracting it to a reusable helper function. +const performWidgetExportImport = (pageName: string, widgetNames: string[]) => {
+ partialImportExport.OpenExportModal(pageName);
+ partialImportExport.PartiallyExportFile(
+ 4,
+ partialImportExport.locators.export.modelContents.widgetsSection,
+ widgetNames,
+ );
+
+ partialImportExport.OpenImportModal(pageName);
+ partialImportExport.ImportPartiallyExportedFile(
+ "PageActions.json",
+ "Widgets",
+ widgetNames,
+ "downloads",
+ );
+};
+
- partialImportExport.OpenExportModal("HomePage");
- partialImportExport.PartiallyExportFile(
- 4,
- partialImportExport.locators.export.modelContents.widgetsSection,
- ["Text1"],
- );
-
- //Import the exported App
- partialImportExport.OpenImportModal("HomePage");
- partialImportExport.ImportPartiallyExportedFile(
- "PageActions.json",
- "Widgets",
- ["Text1"],
- "downloads",
- );
+ performWidgetExportImport("HomePage", ["Text1"]); 📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
}); |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,7 @@ | ||
# To run only limited tests - give the spec names in below format: | ||
#cypress/e2e/Regression/ClientSide/VisualTests/JSEditorIndent_spec.js | ||
cypress/e2e/Regression/ClientSide/PartialImportExport/PageActions_spec.ts | ||
# For running all specs - uncomment below: | ||
#cypress/e2e/**/**/* | ||
cypress/e2e/Regression/ClientSide/Anvil/Widgets/* | ||
#cypress/e2e/Regression/ClientSide/Anvil/Widgets/* | ||
|
||
#ci-test-limit uses this file to run minimum of specs. Do not run entire suite with this command. |
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -36,9 +36,9 @@ export default class PartialImportExport { | |
}, | ||
}; | ||
|
||
OpenExportModal() { | ||
OpenExportModal(entityName = "Home") { | ||
this.entityExplorer.ActionContextMenuByEntityName({ | ||
entityNameinLeftSidebar: "Home", | ||
entityNameinLeftSidebar: entityName, | ||
action: "Export", | ||
entityType: EntityItems.Page, | ||
}); | ||
|
@@ -49,18 +49,17 @@ export default class PartialImportExport { | |
); | ||
} | ||
|
||
OpenImportModal() { | ||
OpenImportModal(entityName = "Page1") { | ||
AppSidebar.navigate(AppSidebarButton.Editor); | ||
|
||
this.entityExplorer.ActionContextMenuByEntityName({ | ||
entityNameinLeftSidebar: "Page1", | ||
entityNameinLeftSidebar: entityName, | ||
Comment on lines
+52
to
+56
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion Extract default page name and remove redundant method Similar to the export modal, the default page name should be a constant. Additionally, the + private readonly DEFAULT_IMPORT_PAGE = "Page1";
- OpenImportModal(entityName = "Page1") {
+ OpenImportModal(entityName = this.DEFAULT_IMPORT_PAGE) { Please remove the redundant
|
||
action: "Import", | ||
entityType: EntityItems.Page, | ||
}); | ||
|
||
this.agHelper.AssertElementVisibility(this.locators.import.importModal); | ||
} | ||
|
||
ExportAndCompareDownloadedFile( | ||
sectionName: keyof typeof exportedPropertiesToUIEntitiesMap, | ||
sectionIndex: number, | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Avoid using hardcoded coordinates for widget placement
Using fixed coordinates (500, 100) makes the test brittle and susceptible to viewport size changes.