-
Notifications
You must be signed in to change notification settings - Fork 11
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
e2e test for organization teams page #1474
base: develop
Are you sure you want to change the base?
Conversation
WalkthroughThe pull request introduces several updates focused on enhancing testing capabilities within the application. It adds Changes
Possibly related PRs
Suggested reviewers
Poem
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
CodeRabbit Configuration File (
|
Deploying irenestaging with Cloudflare Pages
|
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: 7
🧹 Outside diff range and nitpick comments (11)
cypress/support/application.routes.ts (1)
8-8
: Approve with a minor suggestion: Add leading slash to the pathThe addition of the
organizationTeams
route is good and aligns with the PR objective. However, there's a minor inconsistency in the path format.Consider adding a leading forward slash to maintain consistency with other routes:
- organizationTeams: 'dashboard/organization/teams', + organizationTeams: '/dashboard/organization/teams',app/components/organization-team/overview/index.hbs (3)
1-7
: Consider removing redundant test attribute and standardizing naming convention.The addition of
data-test-cy='org-team-overview'
is good for e2e testing. However, there's already a similar attributedata-test-orgTeamOverview
. To avoid redundancy and maintain consistency:
- Consider removing
data-test-orgTeamOverview
.- Standardize the naming convention. If kebab-case is preferred for Cypress tests, consider updating other
data-test-*
attributes to follow this convention.Here's a suggested change:
<AkStack - data-test-orgTeamOverview data-test-cy='org-team-overview' @direction='column' role='button' local-class='org-team-overview-container' {{on 'click' this.showTeamDetails}} >
Line range hint
8-16
: Consider removing redundant test attribute and standardizing naming convention.Similar to the previous comment, there's a redundancy in test attributes here. To maintain consistency:
- Consider removing
data-test-orgTeamOverview-name
.- Ensure the naming convention is consistent with other Cypress test attributes.
Here's a suggested change:
<AkTypography - data-test-orgTeamOverview-name data-test-cy='org-team-overview-name' @variant='h5' @color='primary' @gutterBottom={{true}} > {{@team.name}} </AkTypography>
Line range hint
1-41
: Consider updating all test attributes for consistencyTo fully align with the e2e testing enhancements and maintain consistency throughout the file, consider updating all
data-test-*
attributes to use thedata-test-cy
format with kebab-case. This would make the test selectors uniform and easier to maintain.Here's a suggested change for the remaining attributes:
<AkStack @spacing='2'> <AkTypography - data-test-orgTeamOverview-membersCount + data-test-cy='org-team-overview-members-count' local-class='upper-case' @color='textSecondary' @variant='body2' @tag='span' > {{t 'users'}} <strong>{{@team.membersCount}}</strong> </AkTypography> <AkTypography - data-test-orgTeamOverview-projectsCount + data-test-cy='org-team-overview-projects-count' local-class='upper-case' @color='textSecondary' @variant='body2' @tag='span' > {{t 'projects'}} <strong>{{@team.projectsCount}}</strong> </AkTypography> </AkStack>This change would ensure all test attributes follow the same convention, improving maintainability and readability of both the component and the corresponding tests.
app/components/organization-team/create-team/index.hbs (1)
29-29
: LGTM! Consider standardizing test attributes.The addition of the
data-test-cy
attribute enhances the testability of the component, which aligns well with the PR objective of adding e2e tests. This change is approved.However, I noticed that this button already has a
data-test-orgCreateTeam-submitBtn
attribute. To maintain consistency and reduce redundancy, consider standardizing on one test attribute convention across the codebase. Ifdata-test-cy
is the preferred format for Cypress tests, you might want to replace the existingdata-test-orgCreateTeam-submitBtn
with adata-test-cy
equivalent in future refactoring.app/components/organization-team/details/index.hbs (1)
18-18
: LGTM: Test identifier added for Cypress testingThe addition of
data-test-cy='teamDetail-closeBtn'
to theAkIconButton
component is appropriate for Cypress testing purposes. This change aligns with the PR objective of enhancing e2e testing capabilities for the organization teams page.A few observations:
- The naming convention used ('teamDetail-closeBtn') is clear and descriptive.
- It's consistent with other test identifiers in the file (e.g., 'data-test-orgTeamDetail-title').
- This addition will make it easier to target this specific button in Cypress tests.
Consider standardizing the prefix across all test identifiers in this file. For example, you could change 'data-test-orgTeamDetail-title' to 'data-test-cy-teamDetail-title' for consistency.
app/components/organization-invitation-list/index.hbs (2)
30-34
: LGTM! Consider consolidating test attributes.The addition of the
data-test-cy
attribute enhances the component's testability for Cypress, which aligns well with the PR's objective of improving e2e testing. The attribute name 'invitationList-row' is descriptive and follows a consistent naming convention.Consider consolidating the two test attributes to reduce duplication:
<b.row - data-test-cy='invitationList-row' - data-test-invitation-list-row + data-test-cy='invitation-list-row' as |r| >This change would maintain the enhanced testability while reducing attribute duplication. However, ensure this doesn't break any existing tests that might rely on the
data-test-invitation-list-row
attribute.
Line range hint
1-72
: Consider style improvements and additional test attributesWhile the changes look good, here are some suggestions to further improve the code:
Standardize quote usage: Consider using single quotes consistently throughout the file for attribute values.
Correct indentation: Ensure consistent indentation, especially within nested blocks.
Add more test attributes: To further enhance e2e testing capabilities, consider adding
data-test-cy
attributes to other key elements, such as:
- The AkTable component
- The table head (t.head)
- Individual cells (r.cell)
- The AkPagination component
Here's an example of how you might add these attributes:
<AkTable data-test-cy="invitation-list-table" data-test-invitation-list as |t|> <t.head data-test-cy="invitation-list-thead" data-test-invitation-list-thead @columns={{this.columns}} /> <t.body @rows={{pgc.currentPageResults}} as |b|> <b.row data-test-cy='invitation-list-row' data-test-invitation-list-row as |r| > <r.cell data-test-cy="invitation-list-cell" data-test-invitation-list-cell as |value|> ... </r.cell> </b.row> </t.body> </AkTable> <AkPagination data-test-cy="invitation-list-pagination" ... >These changes would further improve the testability of the component while maintaining a clean and consistent code style.
cypress/support/api.routes.ts (2)
96-99
: LGTM! Consider aligning the alias with the key name.The
teamsList
route definition looks good. It correctly uses a wildcard for dynamic organization IDs.For consistency, consider changing the alias to match the key name:
teamsList: { route: '/api/organizations/*/teams*', - alias: 'teamList', + alias: 'teamsList', },
108-111
: LGTM! Well-structured route for editing user information.The
editUserInfo
route is correctly defined with wildcards for dynamic organization and user IDs.Note that the alias "editUser" is slightly different from the key name "editUserInfo". This is acceptable as it's more concise, but ensure it's used consistently throughout the codebase.
app/components/organization-team/add-team-project/index.hbs (1)
60-64
: Approve the addition of Cypress test attribute, but consider consistency and redundancy.The addition of the
data-test-cy='addProjectList-row'
attribute is good for enhancing Cypress test capabilities. However, there are a couple of points to consider:
There's an existing
data-test-addProjectList-row
attribute, which seems redundant. Consider removing one of these attributes to avoid duplication.The naming convention for the new attribute (
addProjectList-row
) uses camelCase, while the existing one uses kebab-case. It's recommended to align the naming conventions for consistency across your test attributes.Consider applying this change for consistency and to remove redundancy:
<b.row - data-test-cy='addProjectList-row' - data-test-addProjectList-row + data-test-cy='add-project-list-row' as |r| >
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (9)
- app/components/organization-invitation-list/index.hbs (1 hunks)
- app/components/organization-team/add-team-member/index.hbs (1 hunks)
- app/components/organization-team/add-team-project/index.hbs (1 hunks)
- app/components/organization-team/create-team/index.hbs (1 hunks)
- app/components/organization-team/details/index.hbs (1 hunks)
- app/components/organization-team/overview/index.hbs (1 hunks)
- cypress/support/api.routes.ts (1 hunks)
- cypress/support/application.routes.ts (1 hunks)
- cypress/tests/organization-teams.spec.ts (1 hunks)
🧰 Additional context used
🔇 Additional comments (7)
cypress/support/api.routes.ts (5)
100-103
: LGTM! Well-defined route for team editing.The
editTeam
route definition is correct and consistent. It properly uses wildcards for dynamic organization and team IDs, and the alias matches the key name.
104-107
: LGTM! Clear and consistent organization route definition.The
organization
route is well-defined with a wildcard for dynamic organization IDs. The key name and alias are consistent.
112-115
: LGTM! Clear and consistent users list route definition.The
usersList
route is well-defined with a wildcard for dynamic organization IDs. The key name and alias are consistent.
116-119
: LGTM! Well-structured route for team invitations.The
inviteTeam
route is correctly defined with wildcards for dynamic organization and team IDs. The key name and alias are consistent.
96-119
: Summary: New routes align well with PR objectivesThe added routes (
teamsList
,editTeam
,organization
,editUserInfo
,usersList
, andinviteTeam
) are well-structured and consistent with existing patterns. They enhance API routing capabilities for managing organizations, teams, and users, which aligns perfectly with the PR objective of adding e2e tests for the organization teams page.Minor suggestions were made for consistency in aliases, but overall, these additions provide a solid foundation for the planned e2e tests.
app/components/organization-team/add-team-member/index.hbs (1)
60-60
: LGTM: Enhanced testability with Cypress selectorThe addition of
data-test-cy='userList-row'
improves the component's testability for Cypress e2e tests. This change aligns well with the PR objective of adding e2e tests for the organization teams page. The existingdata-test-addUserList-row
attribute is retained, ensuring backwards compatibility with any existing tests.cypress/tests/organization-teams.spec.ts (1)
36-40
: [Verify] Check for suppressed exceptions impacting test reliabilitySuppressing uncaught exceptions might hide legitimate errors. Let's verify if any exceptions are being thrown during tests that need attention.
Run the following script to list uncaught exceptions in your tests:
If uncaught exceptions are found, consider handling them appropriately in your tests or application code.
Irene Run #496
Run Properties:
|
Project |
Irene
|
Run status |
Failed #496
|
Run duration | 06m 23s |
Commit |
3c3aa45837 ℹ️: Merge a0e24c1f98c3867eed9faa9eb6070ba4930dfc6d into f77e133a6525b8a892bc5699af6b...
|
Committer | Avi Shah |
View all properties for this run ↗︎ |
Test results | |
---|---|
Failures |
1
|
Flaky |
0
|
Pending |
0
|
Skipped |
0
|
Passing |
26
|
Tests for review
cypress/tests/dynamic-scan.spec.ts • 1 failed test
Test | Artifacts | |
---|---|---|
Dynamic Scan > it tests dynamic scan for an apk file: 58062 |
Test Replay
Screenshots
|
a0e24c1
to
5cde4ae
Compare
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
🧹 Outside diff range and nitpick comments (1)
cypress/tests/organization-teams.spec.ts (1)
99-148
: Comprehensive test for team creation and deletionThis test case effectively covers the team creation and deletion process:
- It verifies the presence of necessary UI elements.
- It performs the creation and deletion actions.
- It checks for success messages and verifies the team's presence/absence in the list.
The test provides good coverage of the feature. However, to reduce potential flakiness, consider adding specific timeouts to success message assertions:
- cy.findByText(cyTranslate('teamCreated'), ELEMENT_WAIT_OPTS).should('exist'); + cy.findByText(cyTranslate('teamCreated'), ELEMENT_WAIT_OPTS).should('exist', { timeout: 10000 });Apply similar changes to other success message assertions in this test case.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (9)
- app/components/organization-invitation-list/index.hbs (1 hunks)
- app/components/organization-team/add-team-member/index.hbs (1 hunks)
- app/components/organization-team/add-team-project/index.hbs (1 hunks)
- app/components/organization-team/create-team/index.hbs (1 hunks)
- app/components/organization-team/details/index.hbs (1 hunks)
- app/components/organization-team/overview/index.hbs (1 hunks)
- cypress/support/api.routes.ts (1 hunks)
- cypress/support/application.routes.ts (1 hunks)
- cypress/tests/organization-teams.spec.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (8)
- app/components/organization-invitation-list/index.hbs
- app/components/organization-team/add-team-member/index.hbs
- app/components/organization-team/add-team-project/index.hbs
- app/components/organization-team/create-team/index.hbs
- app/components/organization-team/details/index.hbs
- app/components/organization-team/overview/index.hbs
- cypress/support/api.routes.ts
- cypress/support/application.routes.ts
🧰 Additional context used
🔇 Additional comments (11)
cypress/tests/organization-teams.spec.ts (11)
36-40
: Reconsider global suppression of uncaught exceptionsThe global suppression of uncaught exceptions is still present. As mentioned in a previous review, this practice can mask real issues in your application.
Consider removing this global handler or handling specific known exceptions to ensure that unexpected errors are caught during testing.
22-24
: Use a placeholder domain for test emailsAs noted in a previous review, using a real email domain (
appknox.io
) in test data can lead to unintended consequences. Consider using a placeholder domain likeexample.com
or a domain specifically designed for testing purposes.Apply this diff to update the test email:
- inviteEmail: 'cypress2+1@appknox.io', + inviteEmail: 'cypress2+1@example.com',
42-73
: Well-structured test setupThe
beforeEach
hook is well-organized and follows good practices:
- It sets up network interceptions for relevant API routes.
- It logs in the user and visits the correct page before each test.
- It waits for necessary network responses and UI elements to ensure the page is fully loaded.
This setup provides a solid foundation for the subsequent tests.
75-97
: Comprehensive test for team search functionalityThis test case effectively covers the team search feature:
- It verifies the existence of the search input.
- It performs a search and checks that the correct team is displayed.
- It ensures that the search input can be cleared.
The assertions are clear and relevant, providing good coverage of the search functionality.
150-209
: Comprehensive test for project management in teamsThis test case effectively covers adding and removing projects from a team:
- It locates the correct team and opens its details.
- It adds a project to the team and verifies the success message.
- It removes the project from the team and verifies the success message.
The test provides good coverage of the project management functionality within teams.
175-176
: Fix missing closing bracket in selectorsAs noted in a previous review, the selectors for team detail action buttons are missing closing brackets. This could lead to incorrect element selection or test failures.
Apply this diff to fix the selectors:
- cy.get('[data-test-teamDetailAction-actionBtn]') + cy.get('[data-test-teamDetailAction-actionBtn]') - cy.get('[data-test-teamdetailaction-titlebtn]').click(); + cy.get('[data-test-teamdetailaction-titlebtn]').click();Also applies to: 187-187
211-275
: Comprehensive test for user management in teamsThis test case effectively covers adding and removing users from a team:
- It locates the correct team and opens its details.
- It adds a user to the team and verifies the success message.
- It removes the user from the team and verifies the success message.
The test provides good coverage of the user management functionality within teams.
277-323
: Comprehensive test for inviting users to teamsThis test case effectively covers the process of inviting users to a team:
- It locates the correct team and opens its details.
- It invites a user to the team and verifies the success message.
- It deletes the invitation and verifies the success message.
The test provides good coverage of the user invitation functionality within teams.
1-323
: Overall assessment of organization teams testsThis file provides comprehensive test coverage for the organization teams functionality. The tests are well-structured and cover key aspects such as team search, creation/deletion, project management, user management, and user invitations.
Key strengths:
- Thorough setup in the
beforeEach
hook.- Good use of constants and wait options for improved maintainability.
- Comprehensive coverage of various team management scenarios.
Areas for improvement:
- Address the global exception handling to avoid masking real issues.
- Use a placeholder domain for test emails.
- Refactor repeated code for opening team drawers into a custom command.
- Fix missing closing brackets in some selectors.
- Consider adding specific timeouts to success message assertions to reduce potential flakiness.
Addressing these points will further enhance the quality and maintainability of these tests.
213-220
: 🛠️ Refactor suggestionRefactor repeated code into a custom command
As suggested in a previous review, the steps to find and open a team's detail drawer are repeated across multiple tests. Consider extracting this into a custom Cypress command to improve maintainability and reduce duplication.
For example, add a custom command in
cypress/support/commands.js
:Cypress.Commands.add('openTeamDrawer', (teamName) => { cy.findAllByTestId('org-team-overview-name', ELEMENT_WAIT_OPTS) .contains(teamName) .should('exist') .click(); });Then, replace the repeated code in your test:
- cy.findAllByTestId('org-team-overview-name', ELEMENT_WAIT_OPTS) - .contains(TEST_DATA.teamName) - .should('exist') - .as('cypressTeam'); - - // Open drawer - cy.get('@cypressTeam').click(); + cy.openTeamDrawer(TEST_DATA.teamName);Also, fix the missing closing bracket in the selector:
- cy.get('[data-test-teamdetailaction-titlebtn]').click(); + cy.get('[data-test-teamdetailaction-titlebtn]').click();Also applies to: 248-248
278-285
: 🛠️ Refactor suggestionRefactor repeated code into a custom command
As suggested earlier, the steps to find and open a team's detail drawer are repeated. Consider using the custom
openTeamDrawer
command proposed earlier to improve maintainability and reduce duplication.Replace the repeated code with:
cy.openTeamDrawer(TEST_DATA.teamName);This will make the test more concise and easier to maintain.
5cde4ae
to
dbffa03
Compare
Quality Gate passedIssues Measures |
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: 2
🧹 Outside diff range and nitpick comments (3)
cypress/support/api.routes.ts (2)
96-99
: LGTM! Consider aligning the alias with the key name.The
teamsList
route definition looks good. It correctly uses a wildcard for the organization ID, allowing for dynamic routing.For consistency, consider changing the alias to match the key name:
teamsList: { route: '/api/organizations/*/teams*', - alias: 'teamList', + alias: 'teamsList', },
120-123
: LGTM! Consider aligning the alias with the key name.The
editUserInfo
route definition is correct and uses appropriate wildcards for organization and user IDs.For consistency, consider changing the alias to match the key name:
editUserInfo: { route: '/api/organizations/*/users/*', - alias: 'editUser', + alias: 'editUserInfo', },cypress/tests/organization-teams.spec.ts (1)
84-84
: Consider enabling skipped testsSeveral tests are currently marked with
it.skip(...)
, which means they are skipped and not executed. Enabling these tests will improve test coverage and ensure the related functionalities are validated. If the tests are not ready to be run, consider adding comments to explain the reason for skipping and any prerequisites needed before they can be enabled.Also applies to: 113-113, 195-195, 287-287
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
📒 Files selected for processing (9)
- app/components/organization-invitation-list/index.hbs (1 hunks)
- app/components/organization-team/add-team-member/index.hbs (1 hunks)
- app/components/organization-team/add-team-project/index.hbs (1 hunks)
- app/components/organization-team/create-team/index.hbs (1 hunks)
- app/components/organization-team/details/index.hbs (1 hunks)
- app/components/organization-team/overview/index.hbs (1 hunks)
- cypress/support/api.routes.ts (1 hunks)
- cypress/support/application.routes.ts (1 hunks)
- cypress/tests/organization-teams.spec.ts (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (7)
- app/components/organization-invitation-list/index.hbs
- app/components/organization-team/add-team-member/index.hbs
- app/components/organization-team/add-team-project/index.hbs
- app/components/organization-team/create-team/index.hbs
- app/components/organization-team/details/index.hbs
- app/components/organization-team/overview/index.hbs
- cypress/support/application.routes.ts
🧰 Additional context used
🔇 Additional comments (8)
cypress/support/api.routes.ts (8)
100-103
: LGTM! Well-defined route for team editing.The
editTeam
route definition is correct and consistent. It properly uses wildcards for both organization and team IDs, allowing for dynamic routing.
104-107
: LGTM! Comprehensive route definition for team member operations.The
teamMember
route definition is well-structured. It correctly uses wildcards for organization, team, and member IDs, providing flexibility for various operations on individual team members.
108-111
: LGTM! Well-defined route for listing team members.The
teamMembersList
route definition is excellent. It correctly uses wildcards for organization and team IDs, and the trailing wildcard allows for query parameters, which is ideal for list endpoints.
112-115
: LGTM! Precise route definition for team project operations.The
teamProject
route definition is well-structured. It correctly uses wildcards for organization, team, and project IDs, allowing for flexible operations on specific team projects.
116-119
: LGTM! Clear and concise organization route definition.The
organization
route definition is straightforward and effective. It properly uses a wildcard for the organization ID, allowing for operations on specific organizations.
124-127
: LGTM! Well-structured route for listing users.The
usersList
route definition is excellent. It correctly uses a wildcard for the organization ID, and the trailing wildcard allows for query parameters, which is ideal for list endpoints.
128-131
: LGTM! Comprehensive route for team invitations.The
inviteTeam
route definition is well-structured. It correctly uses wildcards for organization and team IDs, and the "invitations*" ending allows for both creating and potentially listing invitations.
96-131
: Overall, excellent additions to support e2e testing for organization teams.These new API route definitions align well with the PR objective of adding e2e tests for the organization teams page. They provide comprehensive coverage for team and user management operations within organizations, which will facilitate robust Cypress testing.
The additions are consistent with the existing structure and naming conventions in the file. The use of wildcards for dynamic IDs and the inclusion of potential query parameters for list endpoints demonstrate good API design practices.
Minor suggestions were made for alias consistency, but these are not critical issues. Great work on expanding the API routes to support the new e2e tests!
|
||
cy.findByTestId('teamDetail-closeBtn').click(); | ||
|
||
cy.wrap(false).as('testCompleted'); |
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.
Set testCompleted
to true
after successful test execution
In the 'should add/remove user to team'
test, testCompleted
is set to false
at both the beginning and the end of the test. This may cause the cleanup function to run even after a successful test execution, potentially leading to unnecessary API calls or side effects. To ensure that the cleanup logic only runs when the test does not complete successfully, set testCompleted
to true
at the end of the test.
Apply this diff to fix the issue:
- cy.wrap(false).as('testCompleted');
+ cy.wrap(true).as('testCompleted');
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
cy.wrap(false).as('testCompleted'); | |
cy.wrap(true).as('testCompleted'); |
|
||
cy.findByTestId('teamDetail-closeBtn').click(); | ||
|
||
cy.wrap(false).as('testCompleted'); |
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.
Set testCompleted
to true
after successful test execution
In the 'should invite user to team'
test, testCompleted
is set to false
at both the beginning and the end of the test. This may trigger the cleanup function unnecessarily even when the test passes. To prevent this and ensure proper test flow, set testCompleted
to true
at the end of the test.
Apply this diff to fix the issue:
- cy.wrap(false).as('testCompleted');
+ cy.wrap(true).as('testCompleted');
📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
cy.wrap(false).as('testCompleted'); | |
cy.wrap(true).as('testCompleted'); |
No description provided.