oppia/oppia

[Feature Request]: Migrate acceptance tests for topic-manager from Puppeteer to Playwright

Open

#26,736 opened on Jul 12, 2026

View on GitHub
 (5 comments) (0 reactions) (0 assignees)Python (3,534 forks)batch import
Impact: MediumWork: Lowgood first issue

Repository metrics

Stars
 (5,292 stars)
PR merge metrics
 (Avg merge 20d 19h) (71 merged PRs in 30d)

Description

Is your feature request related to a problem? Please describe.

The topic-manager acceptance test specs still run on Puppeteer. As part of the broader migration (https://github.com/oppia/oppia/issues/24715), these need to move to Playwright so we can retire Puppeteer entirely from the acceptance test suite.

Describe the solution (or solutions) you'd like

Migrate the following specs from core/tests/puppeteer-acceptance-tests/specs/topic-manager to core/tests/playwright-acceptance-tests/specs/topic-manager, following our existing Playwright conventions:

  • track-upcoming-delayed-publish-chapter.spec.ts
  • create-and-delete-questions-in-skill-editor.spec.ts
  • cannot-do-curriculum-admin-actions.spec.ts
  • edit-and-republish-story-with-mobile-supported-explorations.spec.ts
  • access-dashboard-using-profile-dropdown.spec.ts
  • edit-the-topic.spec.ts
  • assign-unassign-and-merge-skills-in-skill-dashboard.spec.ts
  • edit-and-republish-the-skill.spec.ts
  • add-questions-from-topic-editor.spec.ts
  • add-remove-and-edit-subtopics.spec.ts
  • create-delete-and-edit-the-stories-and-chapters.spec.ts
  • create-and-edit-questions-in-skill-dashboard.spec.ts

At a high level, this involves:

  1. Removing the old spec from puppeteer-acceptance-tests/specs/topic-manager and adding a rewritten version to playwright-acceptance-tests/specs/topic-manager, in Playwright syntax/conventions.
  2. Updating the framework field for each suite in acceptance.json to "playwright".
  3. Adding any missing utility methods to playwright-acceptance-tests/utilities.
  4. Verifying tests pass locally, both desktop and mobile:
    • Desktop: python -m scripts.run_acceptance_tests --suite={suite_name}
    • Mobile: python -m scripts.run_acceptance_tests --suite={suite_name} --mobile
    • Videos for both runs will be generated in the oppia_full_stack_test_video_recordings folder (sibling directory to the Oppia root)
    • Traces for both runs will also be generated in the oppia_full_stack_test_playwright_results folder (sibling directory to the Oppia root)
  5. Running the stress test on your fork, on the branch you want to merge, using the stress_test_acceptance_test.yml workflow, for 200 total runs (100 desktop + 100 mobile), to rule out flakiness before requesting assignment.
  6. Share the stress test link and either the trace or video in the issue thread.

After reviewing the stress test run and video/trace recordings we can assign you to the particular spec file.

Describe alternatives you've considered and rejected

No response

Additional context

No response

Contributor guide