-
Notifications
You must be signed in to change notification settings - Fork 3.9k
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 tests for Fork app related to multiple workspace #39263
base: release
Are you sure you want to change the base?
Conversation
WalkthroughA new Cypress test suite has been added to validate the forking of applications. The suite covers scenarios for forking an application within the same workspace and into a new workspace. It sets up a unique workspace and application via a UUID, creates or navigates to the workspace, performs the fork operation, and verifies UI elements (table widget) across multiple pages. Changes
Sequence Diagram(s)sequenceDiagram
participant TR as Test Runner
participant App as Application Manager
participant UI as User Interface
TR->>UI: Navigate to Home Page
TR->>App: Create Workspace & Import Application
TR->>UI: Skip to Application
alt Fork in Same Workspace
TR->>UI: Fork Application within Workspace
TR->>UI: Verify Table Widget on Oracle, PostGreSQL, S3 pages
else Fork in Different Workspace
TR->>UI: Create New Workspace & Fork Application
TR->>UI: Verify Table Widget on Oracle, PostGreSQL, S3 pages
end
Possibly related PRs
Suggested labels
Suggested reviewers
Poem
📜 Recent review detailsConfiguration used: .coderabbit.yaml 📒 Files selected for processing (1)
🧰 Additional context used📓 Path-based instructions (1)`app/client/cypress/**/**.*`: Review the following e2e test ...
⏰ Context from checks skipped due to timeout of 90000ms (4)
🔇 Additional comments (2)
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
Documentation and Community
|
/ci-test-limit-count run_count=2 |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/13321798087. |
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.
Actionable comments posted: 0
🧹 Nitpick comments (4)
app/client/cypress/e2e/Regression/ClientSide/Fork/ForkApplicationIntoWorkspace.ts (4)
10-11
: Replace 'any' type with specific types.Use string type instead of any for better type safety and maintainability.
- let workspaceName: any; - let appName: any; + let workspaceName: string; + let appName: string;
18-21
: Extract JSON filename to a constant.The long JSON filename should be moved to a constant at the top of the file to improve maintainability and reduce the risk of typos.
+ const TEST_APP_JSON = "OldApp_DSTesting1.9.24_Latest_29August2024_withuiforframeowrk.json"; homePage.ImportApp( - "OldApp_DSTesting1.9.24_Latest_29August2024_withuiforframeowrk.json", + TEST_APP_JSON, workspaceName, );
26-41
: Refactor repeated assertions into a helper function.The table widget visibility checks are repeated across pages. Consider extracting this into a helper function.
+ const PAGES = ["Oracle", "PostGreSQL", "S3"]; + + const verifyTableWidgetAcrossPages = () => { + PAGES.forEach(page => { + EditorNavigation.NavigateToPage(page, true); + agHelper.AssertElementVisibility(locators._tableWidget); + }); + }; it("1. Verify fork application into same workspace", () => { // ... existing code ... - EditorNavigation.NavigateToPage("Oracle", true); - agHelper.AssertElementVisibility(locators._tableWidget); - EditorNavigation.NavigateToPage("PostGreSQL", true); - agHelper.AssertElementVisibility(locators._tableWidget); - EditorNavigation.NavigateToPage("S3", true); - agHelper.AssertElementVisibility(locators._tableWidget); + verifyTableWidgetAcrossPages(); });
43-60
: Reuse the table widget verification helper.The same table widget visibility checks are duplicated. Use the suggested helper function here as well.
it("2. Verify fork application into different workspace", () => { // ... existing code ... - EditorNavigation.NavigateToPage("Oracle", true); - agHelper.AssertElementVisibility(locators._tableWidget); - EditorNavigation.NavigateToPage("PostGreSQL", true); - agHelper.AssertElementVisibility(locators._tableWidget); - EditorNavigation.NavigateToPage("S3", true); - agHelper.AssertElementVisibility(locators._tableWidget); + verifyTableWidgetAcrossPages(); });
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
📒 Files selected for processing (1)
app/client/cypress/e2e/Regression/ClientSide/Fork/ForkApplicationIntoWorkspace.ts
(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
`app/client/cypress/**/**.*`: Review the following e2e test ...
app/client/cypress/**/**.*
: Review the following e2e test code written using the Cypress test library. Ensure that:
- Follow best practices for Cypress code and e2e automation.
- Avoid using cy.wait in code.
- Avoid using cy.pause in code.
- Avoid using agHelper.sleep().
- Use locator variables for locators and do not use plain strings.
- Use data-* attributes for selectors.
- Avoid Xpaths, Attributes and CSS path.
- Avoid selectors like .btn.submit or button[type=submit].
- Perform logins via API with LoginFromAPI.
- Perform logout via API with LogOutviaAPI.
- Perform signup via API with SignupFromAPI.
- Avoid using it.only.
- Avoid using after and aftereach in test cases.
- Use multiple assertions for expect statements.
- Avoid using strings for assertions.
- Do not use duplicate filenames even with different paths.
- Avoid using agHelper.Sleep, this.Sleep in any file in code.
app/client/cypress/e2e/Regression/ClientSide/Fork/ForkApplicationIntoWorkspace.ts
⏰ Context from checks skipped due to timeout of 90000ms (3)
- GitHub Check: client-unit-tests / client-unit-tests
- GitHub Check: client-build / client-build
- GitHub Check: client-prettier / prettier-check
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/13321798087.
|
/ci-test-limit-count run_count=2 |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/13323769369. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/13323769369.
|
/ci-test-limit-count run_count=25 |
Tests running at: https://github.com/appsmithorg/appsmith/actions/runs/13361829656. |
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/13361829656.
|
/ok-to-test tags="@tag.Sanity"
Tip
🟢 🟢 🟢 All cypress tests have passed! 🎉 🎉 🎉
Workflow run: https://github.com/appsmithorg/appsmith/actions/runs/13503486922
Commit: 88d22fb
Cypress dashboard.
Tags:
@tag.Sanity
Spec:
Mon, 24 Feb 2025 17:37:30 UTC