Skip to content

Conversation

@tangencialmente
Copy link

@tangencialmente tangencialmente commented Nov 12, 2025

This is a re-submission of this PR
as it wasn't properly rebased.

This pull request adds end-to-end test cases using testRigor.

testRigor is an AI-powered end-to-end testing platform that allows you to write tests in plain English. This setup enables automated testing of the Plane application's user interface and functionality from a user's perspective.

  • 1 new workflow file that will perform a full run of this test suite when triggered.
  • 1 new folders called e2etests that contains all the test cases and reusable rules being added.

Here are the results of the latest test suite run: https://app.testrigor.com/public/RMEFLdnHwGbLu265M

Why testRigor?

Test cases written in plain English: Anyone can contribute automated tests without any language-specific coding skills, broadening the contributor base and allowing a higher test coverage.

Reduced maintenance overhead: Tests are resilient to UI changes, lowering the cost of keeping the suite up to date.

Cross-platform coverage: Support across different environments and setups such as mobile, desktop and web.

How to test the changes in this Pull Request:

There are 2 ways to test these changes, either by triggering the workflow actions or by executing it manually:
Workflow actions:

Type of Change

  • Bug fix (non-breaking change which fixes an issue)
  • Feature (non-breaking change which adds functionality)
  • Improvement (change that would cause existing functionality to not work as expected)
  • Code refactoring
  • Performance improvements
  • Documentation update

Test Scenarios:

For the test cases being executed, the test scenario consists in a regular self-hosted plane instance (installed following these rules) that includes 1 admin and 2 normal users.

The 10 test cases being added test, different functionalities these include:

  • Validating that the search function filters work items by labels. Test case execution.
  • Validate that quicklinks do in fact redirect to the specified website. Test case execution.
  • Validating that you can't add an active cycle when another cycle is already active. Test case execution.
  • Validating that cycle progress updates accordingly whenever work items are tagged as "done". Test case execution.
  • Validating that work items can be dragged on views. Test case execution.
  • Validating that pages can be updated be edited by other users and they update in real time. Test case execution.
  • Validating that comments on a work ticket trigger notifications for the people being assigned to it. Test case execution.
  • Validating that changing the project ID, updates the ID of all work items. Test case execution.
  • Validating that it's possible to drag work items on board view and by doing so, their status gets updated. Test case execution.
  • Validating that when guest users are added to a project they're able to see its work items. Test case execution.

Note

Cursor Bugbot is generating a summary for commit 8d87bb5. Configure here.

Summary by CodeRabbit

  • Tests

    • Added comprehensive end-to-end test suite covering user authentication, project and workspace management, work item operations, cycle creation, page and view management, and team collaboration features.
    • Integrated automated testing workflow with CI/CD pipeline support.
  • Documentation

    • Added end-to-end testing documentation including setup instructions, manual testing guidance, and CI/CD integration details.

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 12, 2025

Walkthrough

This pull request introduces a comprehensive end-to-end testing infrastructure using testRigor. It adds a GitHub Actions workflow for automated E2E test execution, documentation for the testing framework, reusable test rules for common UI interactions, and ten test case scenarios covering key features like user management, work items, cycles, views, and pages.

Changes

Cohort / File(s) Summary
CI/CD Infrastructure
.github/workflows/tR-ci.yml
New GitHub Actions workflow named "End-to-End testing with tR" that triggers on push/pull requests to branches tR-e2e-testing and preview. Sets up Plane instance, installs testRigor CLI, and executes test suite with CI token and localhost configuration.
Documentation
e2etests/README.md
Documentation covering E2E testing overview, workflow setup, manual testing guidance, requirements, CI/CD triggers, repository secrets configuration (CI_TOKEN, SUITE_ID), and learning resources.
Reusable Test Rules
e2etests/rules/*
15 test rule files defining parameterized UI automation steps: user authentication (Log "user"..., create user...), project management (add cycle..., add view..., create page...), work item operations (create/delete work item..., quick add work item...), user/cycle/view/page management (add/remove user..., remove cycle..., delete/add view...), and navigation (log out.txt, invite user...).
Test Case Scenarios
e2etests/testcases/*
10 comprehensive E2E test case files validating: team collaboration (add member, assign work items), project settings (Project ID updates), board interactions (drag-and-drop status changes), notifications (inbox comments), cross-user functionality (page editing), work item organization (views, dragging), cycle tracking (progress monitoring, active cycle enforcement), quicklink redirection, and label-based filtering.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

  • Rationale: While the diff introduces 26 new files, they are predominantly test configuration and automation scripts using testRigor's declarative format rather than complex application logic. Files within cohorts follow consistent patterns with minimal heterogeneity.
  • Areas requiring attention:
    • .github/workflows/tR-ci.yml — Verify Plane setup command (curl to prime.plane.so), testRigor CLI installation steps, and CI token/suite ID parameter usage are correct
    • Test case files — Skim a few representative files (e.g., "Add team member to project..." and "Create a work cycle...") to confirm test flow logic and stored value references are consistent
    • e2etests/README.md — Confirm documentation accurately reflects workflow triggers and configuration requirements

Poem

🐰 Hops of joy for testing today!
Rules and cases light the way,
testRigor scripts dance through the play,
E2E workflows save the day!

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Title check ⚠️ Warning The title uses an emoji and focuses on a feature descriptor rather than the primary change; however, it adequately describes the main addition of end-to-end test cases. Remove the emoji and rephrase to be more specific: 'Add end-to-end test cases using testRigor' or 'Add testRigor-based end-to-end testing workflow and test suite'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description check ✅ Passed The description comprehensively covers the purpose, scope, testing approach, and specific test scenarios with external references, though formatted unconventionally.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This PR is being reviewed by Cursor Bugbot

Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

- uses: 'actions/checkout@v4'
name: 'Checkout'
with:
ref: ${{ inputs.refName != '' && inputs.refName || '' }}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Workflow Checks Out Wrong Branch

The workflow references inputs.refName without defining it in the workflow_dispatch section. This will cause the checkout step to receive an empty string for the ref parameter, potentially checking out the wrong branch when manually triggered.

Fix in Cursor Fix in Web

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 13

🧹 Nitpick comments (6)
e2etests/rules/quick add work item "workItem" with status "status".txt (1)

1-5: Consider adding verification step.

The rule lacks a confirmation check that the work item was successfully created or state changed. Adding check that page contains stored value "workItem" at the end would improve reliability and catch UI failures earlier.

e2etests/rules/create page "pageName" on project "projectName".txt (1)

1-5: Consider adding verification step.

The rule could be more robust by verifying the page was created, similar to the work item creation rule. Adding check that page contains stored value "pageName" before returning to project would catch creation failures.

e2etests/testcases/Create a page, validate that other users can modify it.txt (1)

1-20: Consider strengthening the real-time collaboration assertion.

The current test validates persistence via reload, which is good. However, to fully validate real-time collaboration, consider adding a step where the admin observes the edit before reload to confirm live updates. This would test WebSocket/real-time sync. That said, the current design with reload is a reasonable baseline and may already be covered by separate real-time tests mentioned in the PR objectives.

e2etests/README.md (2)

11-15: Clarify workflow trigger conditions.

The documentation mentions the GitHub Actions workflow triggers but doesn't explicitly list all conditions. While line 32-35 covers CI/CD testing, consider adding a brief note in the "How it Works" section (around line 11) that the workflow runs automatically on push to specific branches (tr-e2e-tests, preview) and on pull requests to preview.

This would help developers understand when tests execute without needing to review the workflow file directly.


21-27: Add prerequisite installation step to manual testing section.

The manual testing code block on line 24-26 shows how to run tests, but the Requirements section above it assumes testRigor CLI is already installed. Consider adding a brief note about installation (e.g., npm install -g testrigor-cli or equivalent).

This improves the documentation's completeness for developers new to testRigor.

e2etests/testcases/Add team member to project,assign a work item to them then validate they see the work item.txt (1)

18-21: Add assertions or error handling to cleanup section.

The cleanup section assumes the work item and invited user still exist, but if the test fails partway through (e.g., on line 8 during assignment), the cleanup operations (lines 20-21) might fail without clear error reporting.

Consider adding validation steps before cleanup:

  //cleanup
+ Log stored value "adminUser" to website
+ check that page contains saved value "workItem" // verify work item still exists before deletion
  delete work item stored value "workItem" from project stored value "projectName"
+ check that page does not contain saved value "workItem" // verify deletion succeeded
  remove user stored value "invitedUser" from project stored value "projectName"

This makes test failures easier to diagnose and ensures cleanup actually succeeds.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 30da349 and 8d87bb5.

📒 Files selected for processing (27)
  • .github/workflows/tR-ci.yml (1 hunks)
  • e2etests/README.md (1 hunks)
  • e2etests/rules/Log "user" to website.txt (1 hunks)
  • e2etests/rules/add a cycle "cycleName" to project "projectName".txt (1 hunks)
  • e2etests/rules/add user "userName" to project "projectName".txt (1 hunks)
  • e2etests/rules/add view "viewName" to project "projectName".txt (1 hunks)
  • e2etests/rules/create page "pageName" on project "projectName".txt (1 hunks)
  • e2etests/rules/create user "user" then join workplace.txt (1 hunks)
  • e2etests/rules/create work item "workItem" on project "projectName".txt (1 hunks)
  • e2etests/rules/delete page "pageName" from "projectName".txt (1 hunks)
  • e2etests/rules/delete view "viewName" from project "projectName".txt (1 hunks)
  • e2etests/rules/delete work item "workItem" from project "projectName".txt (1 hunks)
  • e2etests/rules/invite user "userName".txt (1 hunks)
  • e2etests/rules/log out.txt (1 hunks)
  • e2etests/rules/quick add work item "workItem" with status "status".txt (1 hunks)
  • e2etests/rules/remove cycle "cycleName" from project "projectName".txt (1 hunks)
  • e2etests/rules/remove user "userName" from project "projectName".txt (1 hunks)
  • e2etests/testcases/Add team member to project,assign a work item to them then validate they see the work item.txt (1 hunks)
  • e2etests/testcases/Change Project ID, verify that work items get updated accordingly.txt (1 hunks)
  • e2etests/testcases/Change view to board, verify that dragging items to other columns updates their status.txt (1 hunks)
  • e2etests/testcases/Comment on a work item, validate that other users receive notifications on their inbox.txt (1 hunks)
  • e2etests/testcases/Create a page, validate that other users can modify it.txt (1 hunks)
  • e2etests/testcases/Create a view, add work items then drag them.txt (1 hunks)
  • e2etests/testcases/Create a work cycle, add work items, validate that progress is being tracked after work items are tagged as completed.txt (1 hunks)
  • e2etests/testcases/Create an active cycle, check that you cant have more than one active cycle.txt (1 hunks)
  • e2etests/testcases/Validate that quicklinks redirect to the specified page.txt (1 hunks)
  • e2etests/testcases/Validate that search work items by labels is filtering correctly.txt (1 hunks)
🧰 Additional context used
🧠 Learnings (1)
📚 Learning: 2025-10-17T10:46:13.825Z
Learnt from: NarayanBavisetti
Repo: makeplane/plane PR: 7969
File: apps/api/plane/api/views/cycle.py:1218-1228
Timestamp: 2025-10-17T10:46:13.825Z
Learning: In the cycle transfer functionality in apps/api/plane/api/views/cycle.py, transfers should only be allowed from completed cycles (end_date < timezone.now()), not from active or draft cycles. The guard should block when end_date is None or end_date >= timezone.now().

Applied to files:

  • e2etests/testcases/Create an active cycle, check that you cant have more than one active cycle.txt
🪛 actionlint (1.7.8)
.github/workflows/tR-ci.yml

33-33: property "refname" is not defined in object type {}

(expression)


33-33: property "refname" is not defined in object type {}

(expression)

🪛 LanguageTool
e2etests/README.md

[uncategorized] ~11-~11: The official name of this software platform is spelled with a capital “H”.
Context: ...GitHub Actions**: Automated workflow in .github/workflows/tR-ci.yml that: - Sets up...

(GITHUB)

⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Cursor Bugbot
🔇 Additional comments (26)
e2etests/rules/log out.txt (1)

1-2: LGTM!

Clean and straightforward logout rule suitable for reuse across test cases.

e2etests/rules/add a cycle "cycleName" to project "projectName".txt (1)

1-9: Verify stored value initialization upstream.

The rule depends on todayDayOfMonth stored value being set. Ensure this is initialized in test setup before invoking this rule, and that it correctly handles date edge cases (e.g., month boundaries, year transitions).

e2etests/testcases/Validate that search work items by labels is filtering correctly.txt (2)

21-21: Verify the intent of double-click action.

Line 21 uses double click to navigate to the project. Typical UI navigation uses single clicks. Verify this is intentional (e.g., for edit mode) or should be changed to a single click.


18-20: Verify UI element identifiers.

Lines 18-20 reference UI elements by identifier names ("move-right", "list-filter", "Label"). Confirm these identifiers match the actual UI elements in the Plane application to ensure the test remains resilient across UI updates.

e2etests/rules/delete work item "workItem" from project "projectName".txt (1)

1-7: LGTM!

Clean deletion flow with proper verification. The double-click confirmation (lines 4-5) is a defensive pattern that aligns with destructive operations. Navigation context is properly maintained.

e2etests/rules/create work item "workItem" on project "projectName".txt (1)

1-7: LGTM!

Well-structured creation rule with proper verification check on line 6. This pattern (navigate → add → fill → save → verify → return) provides good coverage and should be the template for other entity creation rules.

e2etests/testcases/Create a view, add work items then drag them.txt (1)

3-9: Test flow and cleanup look good.

The view and work item setup is clear, the drag test is focused, and the assertion correctly validates the drag order. The cleanup removes all created entities to prevent state pollution.

e2etests/testcases/Validate that quicklinks redirect to the specified page.txt (1)

9-11: Verify URL assertion is robust and review tab handling.

Line 10 asserts the URL matches the stored value. Ensure this check works reliably across browsers (some may normalize URLs). Line 11 correctly switches back to tab 1 for cleanup; this is good multi-window test design.

e2etests/rules/remove cycle "cycleName" from project "projectName".txt (1)

1-7: Clean and consistent reusable rule.

The cycle deletion rule follows established patterns with clear navigation, double-confirmation deletion, and verification. Line 7 returns to project context appropriately for subsequent test steps.

e2etests/testcases/Comment on a work item, validate that other users receive notifications on their inbox.txt (2)

9-10: Verify mention syntax is correct for the application.

Line 9 uses "@${projectUser}" to mention another user. Confirm that testRigor's parameter substitution produces the exact mention format expected by the Plane application (e.g., @username with proper delimiter).


5-15: Multi-user notification flow is well-structured.

The logout/login sequences properly isolate user contexts, and the inbox notification check correctly validates the mention count. This effectively tests cross-user notifications.

e2etests/rules/delete page "pageName" from "projectName".txt (1)

1-10: Clean two-step deletion pattern.

The rule correctly implements page deletion via archive + delete workflow, which aligns with safety practices. Navigation and cleanup are consistent with other delete operations.

e2etests/rules/create user "user" then join workplace.txt (1)

1-13: Clean and reusable user onboarding rule.

The user creation flow is well-designed with parameter-driven email generation (allowing reuse with different users) and appropriate form field handling. The final assertion confirms successful login to the workplace. No issues identified.

e2etests/testcases/Create a work cycle, add work items, validate that progress is being tracked after work items are tagged as completed.txt (2)

9-9: Verify progress assertion text matches UI exactly.

Lines 9 and 15 have different assertion wording:

  • Line 9: "1/2 work item closed" (singular)
  • Line 15: "2/2 work items closed" (plural)

Confirm whether the Plane UI actually renders these exactly as specified. If the UI consistently uses one form (e.g., always plural), one of these assertions will fail.

Also applies to: 15-15


11-11: Consider storing work item name as a value or using parameterized reference.

Line 11 references "workItem2" as a literal string, but lines 6–7 use the stored names from quick add operations. For consistency and clarity, either: (1) confirm the literal "workItem2" matches the added work item name exactly, or (2) store and reuse the work item name value throughout the test.

e2etests/testcases/Create a page, validate that other users can modify it.txt (1)

5-17: Well-designed multi-user collaboration test with proper eventual consistency handling.

The test correctly validates that page edits by one user persist and are visible to others. The reload operations (lines 9 and 16) appropriately handle eventual consistency in collaborative editing. The logout/login sequences properly isolate user contexts for multi-user validation.

.github/workflows/tR-ci.yml (1)

16-29: Good shell verification for testrigor-cli installation.

The installation verification script properly checks for command availability and version. This defensive approach helps catch installation failures early.

e2etests/testcases/Create an active cycle, check that you cant have more than one active cycle.txt (1)

14-16: Verify test logic for cycle state transitions.

The test navigates to "Completed cycle" to remove Cycle 1, but Cycle 1 was created with today's date (Line 9). An active cycle (start date today, no end date) should not appear in the "Completed cycles" view. According to the cycle management logic, only cycles with end_date < now() are eligible for operations like transfer or removal.

Verify that:

  1. Cycle 1 actually transitions to "Completed" status after creation and validation, or
  2. The test should navigate to "Active cycles" instead, or
  3. The test setup creates Cycle 1 with a past date instead of today.

This test flow needs clarification to ensure it validates the intended single-active-cycle constraint correctly.

e2etests/testcases/Change view to board, verify that dragging items to other columns updates their status.txt (1)

3-7: Test case validates drag-and-drop status update correctly.

The test creates a work item, switches to board view, drags it to "In Progress" column, and asserts the status reflects the change. The flow is logically sound and covers the core functionality described in the PR objective.

e2etests/testcases/Change Project ID, verify that work items get updated accordingly.txt (1)

14-20: Complete the final project ID update with verification.

The test updates the project ID back to "E2ETE" (lines 16-20) but does not include navigation cleanup or final assertion to verify the change succeeded. The test ends abruptly without confirming the final state.

Ensure the test includes:

  1. Verification that the project ID update succeeded (assert "Update project" result or navigate back and confirm), or
  2. Navigation back to workspace to clean up, or
  3. Removal of the final update if it's not part of the core test scenario.
e2etests/rules/invite user "userName".txt (1)

1-6: Reusable invite user rule is well-structured.

The rule properly parameterizes the userName and constructs an email address using the @test.com domain convention. The flow navigates through the invite UI and returns to workspace. This rule supports the user-management test scenarios in the PR.

e2etests/rules/add view "viewName" to project "projectName".txt (1)

1-7: Well-structured add view rule with proper parameterization.

The rule implements a complete create-and-verify flow for adding a view to a project. Stored value usage for projectName and viewName enables reusability across test cases.

e2etests/rules/remove user "userName" from project "projectName".txt (1)

1-10: Comprehensive user removal rule with proper verification.

The rule implements a complete remove-and-verify flow with:

  • Clear navigation to Members section
  • Targeted user row selection in table context
  • Two-step removal confirmation
  • Post-deletion verification that user is removed
  • Proper cleanup navigation

This complements the invite and add user rules to form a complete user-management test suite.

e2etests/rules/delete view "viewName" from project "projectName".txt (1)

1-7: Delete view rule provides complete removal flow with verification.

The rule properly implements delete-and-verify for views with two-step confirmation and post-deletion assertion. This rule complements the add view rule to provide complete view management coverage.

e2etests/rules/add user "userName" to project "projectName".txt (1)

1-10: Verify UI selectors match the actual application interface exactly.

The rule uses several UI selectors that are context-dependent and could be fragile if the interface changes. Specifically:

  • Line 1: Hovering over project name with sidebar context — ensure the context selector "sidebar" is accurate
  • Line 2: "Toggle quick actions menu" — confirm this text matches the button's actual label or accessibility name
  • Line 6: "Select co-worker" — verify this is the correct label for the dropdown/selector

If the testRigor tests fail with "element not found" errors, review the UI element labels in your Plane instance against these selector values. You may need to inspect the page using testRigor's debugging tools or browser DevTools to confirm the exact text/accessibility attributes.

Also, consider whether the hover action on line 1 is necessary. Some UI interactions may trigger the quick actions menu automatically via click, which could simplify the rule.

e2etests/testcases/Add team member to project,assign a work item to them then validate they see the work item.txt (1)

1-5: Clarify saved vs stored value terminology.

Line 1 uses save "Work item assign test" as "workItem", but line 20 later references stored value "workItem". Verify this is intentional:

  • saved values typically persist within the test case
  • stored values typically persist across test runs or from setup/fixtures

If workItem should be accessible in cleanup (line 20), ensure you're using the consistent naming convention. If line 1 should use store instead of save, update it accordingly.

Check your testRigor documentation or syntax rules to confirm the correct keywords for your version. Line 6, 14, and 15 also reference saved value "workItem", so consistency here is important for test reliability.

Comment on lines +32 to +33
with:
ref: ${{ inputs.refName != '' && inputs.refName || '' }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Fix undefined workflow input refName.

The conditional expression references inputs.refName, but the workflow does not define an inputs object. With workflow_dispatch trigger, you must declare inputs explicitly. The current code will fail when the workflow runs.

Apply this diff to define the input and use it correctly:

 on:
   push:
     branches: [tR-e2e-testing, preview]
   pull_request:
     branches: [tR-e2e-testing, preview]
   workflow_dispatch:
+    inputs:
+      refName:
+        description: 'Git ref (branch/tag/commit) to checkout'
+        required: false
+        default: ''

 jobs:
   e2e-tests-tR:
     runs-on: ubuntu-24.04
     steps:
     - name: Set up plane
       run: |
         curl -fsSL https://prime.plane.so/install/ | sh -s -- --silent --domain=127.0.0.1
     - name: Install testRigor command line tool
       run: |
           set -e
           echo "Installing testrigor-cli..."
           npm install -g testrigor-cli
           
           echo "Verifying testrigor-cli installation..."
           if command -v testrigor >/dev/null 2>&1; then
             echo "SUCCESS: testrigor-cli is installed"
             testrigor --version
           else
             echo "ERROR: testrigor-cli installation failed"
             exit 1
           fi
     - uses: 'actions/checkout@v4'
       name: 'Checkout'
       with:
           ref: ${{ inputs.refName || '' }}

This ensures the input is declared when the workflow is manually triggered and safely defaults to the default branch if not provided.

Committable suggestion skipped: line range outside the PR's diff.

🧰 Tools
🪛 actionlint (1.7.8)

33-33: property "refname" is not defined in object type {}

(expression)


33-33: property "refname" is not defined in object type {}

(expression)

🤖 Prompt for AI Agents
.github/workflows/tR-ci.yml lines 32-33: the workflow uses inputs.refName but no
workflow_dispatch inputs are declared; add a workflow_dispatch block that
defines an input named refName with a description and default '' (so the input
exists when manually triggered), and then keep or adjust the call site to read
that input (e.g., using the existing conditional expression or replace with a
safer fallback like using github.ref when inputs.refName is empty). Ensure the
inputs block is placed under the workflow trigger section so the workflow no
longer references an undefined input.

Comment on lines +1 to +6
enter string with parameters "${user}@test.com" into "Email"
check that button "Continue" is enabled
click "Continue"
enter "safePassword14*" into "Password"
check that button "Go to workspace" is enabled
click "Go to workspace"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

CRITICAL: Remove hardcoded password from repository.

Line 4 contains a hardcoded password "safePassword14*" that will be committed to the repository and visible to all users with access. This is a security violation even for test credentials.

Recommended fix: Parameterize the password using a stored value or environment variable:

 enter string with parameters "${user}@test.com" into "Email"
 check that button "Continue" is enabled
 click "Continue"
-enter "safePassword14*" into "Password"
+enter stored value "testPassword" into "Password"
 check that button "Go to workspace" is enabled
 click "Go to workspace"

Ensure testPassword is initialized from a secure configuration source (environment variable, secrets manager) in your test setup, not committed to the repository.

Secondary note: Standardize file naming—use lowercase "Log "user" to website.txt" for consistency with "log out.txt".

🤖 Prompt for AI Agents
In e2etests/rules/Log "user" to website.txt around lines 1 to 6, line 4 contains
a hardcoded password "safePassword14*" which must be removed; replace the
literal with a parameter (e.g., testPassword) sourced from a secure
configuration (environment variable or secrets manager) initialized in the test
setup, and update the test to use that variable when entering the password; also
rename the file to lowercase (log "user" to website.txt) for naming consistency.

Comment on lines +2 to +3
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove or explain duplicate login.

Lines 2-3 both execute Log stored value "adminUser" to website, which appears to be a duplicate login attempt for the admin user. This is likely unintended.

Either:

  1. Remove line 3 if the duplicate is unnecessary
  2. Add a comment explaining why two logins are needed (e.g., if the first login can time out)
  save "Work item assign test" as "workItem"
  Log stored value "adminUser" to website
- Log stored value "adminUser" to website
  add user stored value "invitedUser" to project stored value "projectName"
📝 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.

Suggested change
Log stored value "adminUser" to website
Log stored value "adminUser" to website
save "Work item assign test" as "workItem"
Log stored value "adminUser" to website
add user stored value "invitedUser" to project stored value "projectName"
🤖 Prompt for AI Agents
In e2etests/testcases/Add team member to project,assign a work item to them then
validate they see the work item.txt around lines 2-3, there are two identical
steps "Log stored value \"adminUser\" to website" which appears to be a
duplicate login; remove the second occurrence if it's unnecessary, or replace it
with a brief inline comment explaining why a second login is required (for
example to refresh session or simulate re-login) so the intent is clear.

click saved value "workItem"
click "Add assignees"
click stored value "invitedUser"
click "E2E Testing playground" below "Projects" within the context of "sidebar"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Resolve hardcoded project name on line 9.

Line 9 hardcodes "E2E Testing playground" as the project name when navigating back to workspace, but line 12 (after login as invited user) correctly uses stored value "projectName" to navigate to the project.

For test reusability and maintainability, line 9 should reference the same project:

- click "E2E Testing playground" below "Projects" within the context of "sidebar"
+ click stored value "projectName" below "Projects" within the context of "sidebar"

This ensures the test can run in different project contexts without modification.

Also applies to: 12-12

🤖 Prompt for AI Agents
e2etests/testcases/Add team member to project,assign a work item to them then
validate they see the work item.txt around line 9 (also applies to line 12): the
test currently hardcodes the project label "E2E Testing playground" when
clicking the project in the sidebar; change the step to use the stored value
"projectName" instead of the literal string so the click targets the dynamic
project name (and update the similar occurrence at line 12) — replace the
hardcoded locator text with a reference to stored value "projectName" so the
test uses the runtime project name for navigation.

Comment on lines +1 to +2
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove duplicate logging statement.

Consistent duplication pattern across all test cases.

 Log stored value "adminUser" to website
-Log stored value "adminUser" to website
 create work item "workItem" on project stored value "projectName"
📝 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.

Suggested change
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Log stored value "adminUser" to website
create work item "workItem" on project stored value "projectName"
🤖 Prompt for AI Agents
In e2etests/testcases/Change Project ID, verify that work items get updated
accordingly.txt around lines 1 to 2, there is a duplicated logging statement
"Log stored value \"adminUser\" to website"; remove the redundant duplicate so
only a single log call remains, and ensure any surrounding test flow or
assertions still reference the one remaining log entry.

Comment on lines +1 to +2
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove duplicate admin user login statements.

Lines 1–2 both log the stored adminUser value to the website, which appears to be redundant. This pattern is repeated across multiple test files and suggests a copy-paste artifact from a shared template.

-Log stored value "adminUser" to website
-Log stored value "adminUser" to website
+Log stored value "adminUser" to website

If the double login is intentional (e.g., as a workaround for test fixture timing), please add a comment explaining why.

📝 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.

Suggested change
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Log stored value "adminUser" to website
🤖 Prompt for AI Agents
In e2etests/testcases/Create a view, add work items then drag them.txt around
lines 1 to 2, there are duplicate statements that log the stored "adminUser"
value to the website; remove the redundant second logging call (or keep one) so
the adminUser is only logged once, and if the duplication was intentional for
timing/workaround, replace the duplicate with a brief comment explaining the
reason.

Comment on lines +1 to +2
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove duplicate admin user login statements.

Lines 1–2 duplicate the login sequence, consistent with other test files.

-Log stored value "adminUser" to website
-Log stored value "adminUser" to website
+Log stored value "adminUser" to website
📝 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.

Suggested change
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Log stored value "adminUser" to website
🤖 Prompt for AI Agents
In e2etests/testcases/Create a work cycle, add work items, validate that
progress is being tracked after work items are tagged as completed.txt around
lines 1 to 2, there are duplicate "Log stored value 'adminUser' to website"
statements; remove the redundant second occurrence so only one login/log
statement remains (keeping the single correct placement consistent with other
test files) and run the tests to verify no regressions.

Comment on lines +1 to +2
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove duplicate logging statement.

Line 1 and Line 2 are identical and redundant. This appears to be unintended duplication from copy-paste.

 Log stored value "adminUser" to website
-Log stored value "adminUser" to website
 add a cycle "Cycle 1" to project stored value "projectName"
📝 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.

Suggested change
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Log stored value "adminUser" to website
🤖 Prompt for AI Agents
In e2etests/testcases/Create an active cycle, check that you cant have more than
one active cycle.txt around lines 1-2 there are two identical "Log stored value
"adminUser" to website" statements; remove the duplicate so only one logging
call remains (delete either line 1 or line 2) to eliminate the redundant
copy-paste entry.

Comment on lines +1 to +2
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove duplicate admin user login statements.

Same issue as the previous test file. Lines 1–2 duplicate the login sequence.

-Log stored value "adminUser" to website
-Log stored value "adminUser" to website
+Log stored value "adminUser" to website
📝 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.

Suggested change
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Log stored value "adminUser" to website
🤖 Prompt for AI Agents
In e2etests/testcases/Validate that quicklinks redirect to the specified
page.txt lines 1-2, the test contains duplicate "Log stored value 'adminUser' to
website" login statements; remove the redundant second occurrence so the login
sequence appears only once, ensuring any subsequent steps still refer to the
single logged-in state.

Comment on lines +1 to +2
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Remove duplicate login step.

Lines 1 and 2 are identical, logging in the same user twice. This appears to be a copy-paste error that should be removed to avoid unnecessary test execution overhead.

Apply this diff:

 Log stored value "adminUser" to website
-Log stored value "adminUser" to website
 save "Work item to label" as "workItem"
📝 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.

Suggested change
Log stored value "adminUser" to website
Log stored value "adminUser" to website
Log stored value "adminUser" to website
save "Work item to label" as "workItem"
🤖 Prompt for AI Agents
In e2etests/testcases/Validate that search work items by labels is filtering
correctly.txt around lines 1-2, there is a duplicated step "Log stored value
\"adminUser\" to website" executed twice; remove the redundant second occurrence
so the test logs in the admin user only once, leaving a single login step to
avoid unnecessary duplicate execution.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant