Skip to content

Conversation

@alexjoel42
Copy link
Contributor

Add the ability to create module steps. I think this is more of a draft though so we need to really update this before I'm comfortable pushing it

Overview

Ported over HS, Tempdeck, and TC.

Test Plan and Hands on Testing

E2E tests, so this will likely live on branch.

Changelog

  • Added TC, Tempdeck, Tempdeck.
  • Added a try/except that punts you to page.pause() so that you can see where the test went wrong when you go to debug.
  • Added functions that allow you to easily add module steps

Review requests

  • I don't love the print requests and there are a lot of stylistic things I want to really nail down.
  • I'd also like better selectors for TC because there's a lot of flaky work if we ever chose to change it

Risk assessment

  • Bad stylistic/architectural decisions could slow down development time

y3rsh and others added 30 commits October 29, 2025 16:58
- Increase server startup timeout from 60 to 120 attempts (4 minutes)
- Capture and display server output for debugging
- Print progress every 20 seconds during server startup
- Show last 50 lines of output if server fails to start
- Better error messages showing exit codes and timeout details
- Set fetch-depth: 0 to fetch full git history for version script
- Git version script needs tags to determine Protocol Designer version
- Added -s flag to pytest.ini to show server build output
- Print all server output in real-time for better debugging

This fixes the 'Not a valid object name' error during vite build.
- Added test_home.py: Verifies home page loads with all expected elements
- Added test_testfiles.py: Validates all 36 protocol fixture files (v1-v8)
- Updated README with accurate progress tracking:
  - 7 files ported (54% complete)
  - 46 total passing tests
  - Documented remaining 6 files and their complexity
  - Added migration strategy options for StepExecutor pattern tests

All tests passing (46/46)
- Copied fixtures/protocol/ directory with all protocol versions (v1-v8)
  - 36 protocol JSON files across all versions
  - Includes migrations, examples, and specialized protocols
- Copied cypress/fixtures/ as fixtures/cypress_fixtures/
  - Test files for invalid inputs (garbage.txt, invalid_json.txt, etc.)
  - Generic labware definitions (generic_96_tiprack_200ul.json)
- Updated test_testfiles.py to use local fixtures/ directory
- Updated test_import.py to use local fixtures/ directory

This makes e2e-testing self-contained and independent of protocol-designer
directory structure, preparing for eventual removal of Cypress tests.

All 46 tests still passing.
Documents the structure and usage of protocol test fixtures
… test

- Added test_create_new_ot2.py with test_ot2_robot_selection_and_96_channel_visibility
- Verifies robot switching between Flex and OT-2
- Confirms 96-Channel pipette option is available for Flex
- Confirms 96-Channel pipette option is NOT available for OT-2 (only 1-Ch and 8-Ch)
- Uses direct Playwright API (no StepExecutor pattern)
- Discovered and used Playwright browser MCP to debug modal interactions

This is a complex test ported without the StepExecutor infrastructure,
demonstrating that direct Playwright API is readable and maintainable.

All 47 tests passing.
- Added createNew.cy.ts port to completed list
- Updated total to 47 tests across 8 files
- Reduced remaining files from 5 to 4
- Fixed duplicate entry and numbering
…r to leave commented out until 8.6.3/edge update since this ambguity potentially persists to 8.7.0 with tip selection work
Base automatically changed from e2e-testing to edge November 13, 2025 22:26
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.

3 participants