Skip to content

Develop to test code merge - #1996

Merged
ashwinnair-chimple merged 17 commits into
testfrom
develop
Jul 28, 2026
Merged

Develop to test code merge#1996
ashwinnair-chimple merged 17 commits into
testfrom
develop

Conversation

@ashwinnair-chimple

@ashwinnair-chimple ashwinnair-chimple commented Jul 28, 2026

Copy link
Copy Markdown
Collaborator

Changes

  • QA automation deployment to QA environment

Summary by CodeRabbit

  • New Features
    • Updated the displayed game version to v1.6.1.
  • Bug Fixes
    • Improved gameplay stability when puzzle stones are unavailable or reset.
    • Assessment surveys now open at more appropriate times after answer feedback.
    • Gameplay pauses correctly while the treasure-chest mini-game is active and resumes afterward.
    • Mini-game audio now resumes correctly when the chest opens.
    • Level-end transitions provide additional time for progress animations to complete.
  • Tests
    • Added comprehensive automated coverage for launching, gameplay, assessments, mini-games, and level completion.

amitsinghsutara and others added 17 commits June 25, 2026 10:48
* feat: Added playwright and config for e2e testing, converted testcase to scripts and dry running scripts generated with claude code

* feat: Updated the constants, helpers and test cases to handle the initial 16 test cases

* feat: Fm-937 Improve Gameplay Drag-and-Drop Automation Coverage in Feed the Monster & Fm-939 Pause Gameplay When Assessment Is Triggered

* feat: FM-939 FM-940 FM-941 FM-942 FM-943 Fm-944 QA automation

* feat: FM-909 QA automation for FTM to Assessment survey

* Delete CLAUDE.md

* chore: Gitignore updates

* feat: comments addressed

* chore: Gitignore updates

* feat: comments resolved with orchestration and added spec file for testcases

* fix: npm run test issue fixed
…ment Trigger and Complete Level Progression (#1988)

* feat: Added playwright and config for e2e testing, converted testcase to scripts and dry running scripts generated with claude code

* feat: Updated the constants, helpers and test cases to handle the initial 16 test cases

* feat: Fm-937 Improve Gameplay Drag-and-Drop Automation Coverage in Feed the Monster & Fm-939 Pause Gameplay When Assessment Is Triggered

* feat: FM-939 FM-940 FM-941 FM-942 FM-943 Fm-944 QA automation

* feat: FM-909 QA automation for FTM to Assessment survey

* Delete CLAUDE.md

* chore: Gitignore updates

* feat: comments addressed

* chore: Gitignore updates

* feat: comments resolved with orchestration and added spec file for testcases

* fix: npm run test issue fixed

* feat: FM-945 Refine Gameplay E2E Automation to Support Dynamic Assessment Trigger and Complete Level Progressio

* fix: mock helper changes
refactor: update Urdu language curriculum sequence and increment minor version.
… to scripts and dry running scripts generated with claude code (#1989)

* feat: Added playwright and config for e2e testing, converted testcase to scripts and dry running scripts generated with claude code

* feat: Updated the constants, helpers and test cases to handle the initial 16 test cases

* feat: Fm-937 Improve Gameplay Drag-and-Drop Automation Coverage in Feed the Monster & Fm-939 Pause Gameplay When Assessment Is Triggered

* feat: FM-939 FM-940 FM-941 FM-942 FM-943 Fm-944 QA automation

* feat: FM-909 QA automation for FTM to Assessment survey

* Delete CLAUDE.md

* chore: Gitignore updates

* feat: comments addressed

* chore: Gitignore updates

* feat: comments resolved with orchestration and added spec file for testcases

* fix: npm run test issue fixed

* feat: FM-945 Refine Gameplay E2E Automation to Support Dynamic Assessment Trigger and Complete Level Progressio

* fix: mock helper changes

* feat: Fm-946  Refine QA Automation for Assessment Survey Gameplay Flow

* feat: FM-946 Refine QA Automation for Assessment Survey Gameplay Flow
Deploying MR-67 From Test to Prod
Deploying MR-145 from Test to Production
…#1992)

* feat: FM-949 Added e2e playwright automation to circle ci/cd pipeline

* fix: handling artifact storage using s3

* fix: Fixed the build issue and final path changes

* fix: Fixed the build issue and final path changes
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

The PR adds a Playwright E2E framework covering launch through level completion, exposes non-production game internals for automation, adjusts assessment and mini-game timing, and requires E2E tests to pass before deployment.

Changes

FeedTheMonster E2E coverage

Layer / File(s) Summary
Gameplay runtime flow
src/components/stone-handler/..., src/scenes/gameplay-scene/..., src/scenes/progress-scene/..., src/feedTheMonster.ts
Updates stone readiness, assessment timing, mini-game pause/update behavior, audio resumption, level-end timing, and test-only runtime exposure.
E2E foundation
e2e/constants/*, e2e/fixtures/*, e2e/helpers/{canvas,mock,navigation}-helpers.ts, e2e/pages/*
Adds shared selectors, routes, timeouts, fixtures, request mocks, navigation helpers, canvas utilities, and page objects.
Game-state automation
e2e/helpers/game-state-helpers.ts, e2e/helpers/index.ts
Adds runtime state inspection, puzzle progression, assessment interaction, treasure mini-game control, feedback handling, and completion helpers.
Ordered E2E flows
e2e/tests/*
Adds serial tests covering app launch, navigation, gameplay, assessment, mini-game, and natural level completion.
CI and Playwright execution
.circleci/config.yml, playwright.config.ts, .gitignore
Configures Playwright execution and reports, ignores generated artifacts, and makes deployment jobs depend on the new E2E job.

Estimated code review effort: 4 (Complex) | ~60 minutes

Possibly related PRs

Suggested reviewers: bernhardccodev, janfb-codev

🚥 Pre-merge checks | ✅ 5 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Tests & Lint & Coverage ⚠️ Warning E2E tests were added, but lint/coverage aren't verifiable here: deps are absent, and Jest has no active 70% threshold or coverage artifact. Install deps and run npm run lint plus npm test -- --coverage; if 70% is required, enable a Jest threshold in jest.config.js.
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title matches the PR’s main action: merging develop into test for QA deployment support.
Docstring Coverage ✅ Passed Docstring coverage is 80.28% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 9

🧹 Nitpick comments (6)
e2e/helpers/game-state-helpers.ts (2)

351-366: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

waitForPositiveFeedback does not check positivity.

The predicate only requires non-empty text, so it resolves on negative feedback too. Every caller re-asserts the phrase afterwards, so consider renaming to waitForFeedbackText (or moving the positive-phrase list here) to avoid future misuse.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/helpers/game-state-helpers.ts` around lines 351 - 366, Rename
waitForPositiveFeedback to waitForFeedbackText, including all callers and
references, because its predicate only waits for non-empty feedback text and
does not validate positivity. Preserve the existing selector, timeout behavior,
and predicate logic.

533-546: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

speedUpAssessmentTimer rewrites every long one-shot timer.

Any unrelated non-loop timer with remaining > 1000 is also collapsed to targetMs, which can fire game logic (evolution, audio, level-end) far earlier than intended and produce hard-to-diagnose flakes. Consider narrowing by the scheduled callback identity or by an expected remaining window near 5500 ms.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/helpers/game-state-helpers.ts` around lines 533 - 546, Update
speedUpAssessmentTimer so it targets only the assessment timer rather than every
non-loop timer with remaining > 1000. Narrow the condition using the scheduled
callback identity or a validated remaining-time range near 5500 ms, while
preserving the targetMs override for the matched timer.
e2e/tests/isolated/tc-009-013-assessment.spec.ts (2)

348-371: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Extract the repeated puzzle-advance polling block.

The same waitForFunction (scene resolution → currentPuzzleIndex >= expectedcorrectStonePos/stonesHasLoaded) appears at lines 222-241, 351-371, 669-689 and 740-760. A single helper (an extended waitForPuzzleAdvance) would keep the four copies from drifting.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/tests/isolated/tc-009-013-assessment.spec.ts` around lines 348 - 371,
Extract the repeated puzzle-advance polling logic into a shared helper, such as
an extended waitForPuzzleAdvance, and replace the duplicate blocks at all four
call sites. Preserve the existing scene resolution, currentPuzzleIndex
threshold, correctStonePos/stonesHasLoaded condition, timeout, and
swallowed-timeout behavior.

89-122: 🎯 Functional Correctness | 🔵 Trivial | 💤 Low value

Pixel fallback contradicts the stated rationale.

The comment explains that opaque pixels appear at frame = 0 and are therefore not a valid readiness signal, yet the fallback branch resolves exactly on pixel presence — so when stoneHandler is unreachable the drop can still fire mid-animation and be ignored. Consider failing loudly instead of falling back.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/tests/isolated/tc-009-013-assessment.spec.ts` around lines 89 - 122, The
waitForStonesToRender readiness check must not use canvas pixel presence as a
fallback, since pixels appear before stone animation completes. Remove the
pixel-based fallback in waitForStonesToRender and fail clearly when stoneHandler
is unavailable, while preserving the stonesHasLoaded === true readiness
condition.
e2e/tests/ftm-assessment-survey-flow.spec.ts (1)

54-66: 🩺 Stability & Availability | 🔵 Trivial | ⚡ Quick win

Close the browser context, and guard page in afterAll.

ctx is never closed, so the context (and its service workers/storage) leaks for the whole run. Also, if beforeAll fails before page is assigned, afterAll throws a TypeError that masks the original failure.

♻️ Proposed fix
   let page: Page;
+  let ctx: import('`@playwright/test`').BrowserContext;
...
   test.beforeAll(async ({ browser }) => {
-    const ctx = await browser.newContext();
+    ctx = await browser.newContext();
     page = await ctx.newPage();
...
   test.afterAll(async () => {
-    await page.close();
+    await ctx?.close();
   });
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/tests/ftm-assessment-survey-flow.spec.ts` around lines 54 - 66, Update
the test.beforeAll/afterAll lifecycle in the FTM assessment survey flow to
retain the created browser context, close it during cleanup, and guard page
before calling page.close(). Ensure cleanup remains safe when setup fails before
page is assigned, without masking the original failure.
e2e/tests/isolated/tc-004-005-level-selection.spec.ts (1)

46-49: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Fixed waitForTimeout(1500) after navigation clicks. Both specs sleep a fixed 1.5 s after a click even though the very next step already waits on a locator with Timeouts.sceneTransition; the sleeps only add runtime and hide real transition timing.

  • e2e/tests/isolated/tc-004-005-level-selection.spec.ts#L46-L49: drop the sleep after the level-2 click and rely on TC_005's mainCanvas visibility wait.
  • e2e/tests/isolated/tc-002-003-start-screen.spec.ts#L69-L78: drop the sleep after the start-screen click and rely on the following LevelSelectionPage.SELECTOR visibility wait.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@e2e/tests/isolated/tc-004-005-level-selection.spec.ts` around lines 46 - 49,
Remove the fixed waitForTimeout(1500) after the level-2 click in
e2e/tests/isolated/tc-004-005-level-selection.spec.ts lines 46-49, relying on
TC_005’s mainCanvas visibility wait. Also remove the corresponding post-click
sleep in e2e/tests/isolated/tc-002-003-start-screen.spec.ts lines 69-78 and rely
on the following LevelSelectionPage.SELECTOR visibility wait.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@e2e/helpers/canvas-helpers.ts`:
- Around line 45-55: The pixel sampling logic in the canvas helper must use
backing-store coordinates rather than CSS bounding-box dimensions. Update the
page.evaluate callback to calculate x and y from canvas.width and canvas.height
using the provided ratios, clamp both coordinates to valid bitmap bounds, and
then pass the clamped values to getImageData.

In `@e2e/helpers/game-state-helpers.ts`:
- Around line 384-392: Update the CORRECT_STONE_POSITION subscription callback
around unsub in the helper so unsubscription is safe when subscribe returns no
function and when the event fires synchronously before assignment completes.
Avoid directly invoking a TDZ-prone const; defer or guard the unsubscribe using
a variable initialized before subscription, and preserve the one-shot cleanup
behavior after capture.

In `@e2e/pages/gameplay-page.ts`:
- Around line 48-50: Update the GameplayPage promptText getter to use the
dedicated prompt-text selector rather than
GameplayPage.SELECTORS.promptContainer, ensuring getPromptText() reads only the
advertised prompt text.

In `@e2e/pages/level-selection-page.ts`:
- Around line 41-43: Update levelButtonForLevel so game level 11 is not resolved
to the pagination control nextNavButton. Paginate before resolving the level
locator, or reject unsupported levels through the helper’s existing API
contract; preserve correct level-button mapping for supported levels.

In `@e2e/tests/isolated/tc-006-008-gameplay.spec.ts`:
- Around line 146-190: Validate that the bounding box returned by the canvas
locator in the “Verify stone is rendered near captured coordinates via canvas
pixel inspection” step is non-null before accessing its width and height. Add
the same explicit assertion used by the preceding step, then retain the existing
normalized coordinate calculations.

In `@e2e/tests/isolated/tc-009-013-assessment.spec.ts`:
- Line 217: Replace the hardcoded startingPuzzleIndex assignment in the test
setup with the live value returned by getCurrentPuzzleIndexFromManager. Ensure
downstream calculations such as remaining and alreadyTriggered use this
retrieved index rather than assuming TC_008 completed puzzle 1.

In `@e2e/tests/isolated/tc-014-015-mini-game.spec.ts`:
- Around line 73-99: Bound the polling loop in the page.evaluate callback within
the “Auto-click 5 stones” test step by adding a deadline or maximum-attempt
counter. When the cap is reached without finding active stones, resolve early so
the step cannot hang indefinitely, while preserving the existing immediate start
and successful five-click behavior.

In `@playwright.config.ts`:
- Line 11: Update the Playwright configuration’s trace setting alongside retries
to use retain-on-failure, ensuring failed CI tests preserve traces while keeping
retries set to zero.

In `@src/scenes/gameplay-scene/gameplay-scene.ts`:
- Line 86: Update the mini-game completion flow around isMiniGamePaused so it is
set only when the handler actually invokes pauseGamePlay(). Only clear
isPauseButtonClicked and call resumeGame() when that flag indicates this handler
paused the game, preserving any pre-existing manual pause.

---

Nitpick comments:
In `@e2e/helpers/game-state-helpers.ts`:
- Around line 351-366: Rename waitForPositiveFeedback to waitForFeedbackText,
including all callers and references, because its predicate only waits for
non-empty feedback text and does not validate positivity. Preserve the existing
selector, timeout behavior, and predicate logic.
- Around line 533-546: Update speedUpAssessmentTimer so it targets only the
assessment timer rather than every non-loop timer with remaining > 1000. Narrow
the condition using the scheduled callback identity or a validated
remaining-time range near 5500 ms, while preserving the targetMs override for
the matched timer.

In `@e2e/tests/ftm-assessment-survey-flow.spec.ts`:
- Around line 54-66: Update the test.beforeAll/afterAll lifecycle in the FTM
assessment survey flow to retain the created browser context, close it during
cleanup, and guard page before calling page.close(). Ensure cleanup remains safe
when setup fails before page is assigned, without masking the original failure.

In `@e2e/tests/isolated/tc-004-005-level-selection.spec.ts`:
- Around line 46-49: Remove the fixed waitForTimeout(1500) after the level-2
click in e2e/tests/isolated/tc-004-005-level-selection.spec.ts lines 46-49,
relying on TC_005’s mainCanvas visibility wait. Also remove the corresponding
post-click sleep in e2e/tests/isolated/tc-002-003-start-screen.spec.ts lines
69-78 and rely on the following LevelSelectionPage.SELECTOR visibility wait.

In `@e2e/tests/isolated/tc-009-013-assessment.spec.ts`:
- Around line 348-371: Extract the repeated puzzle-advance polling logic into a
shared helper, such as an extended waitForPuzzleAdvance, and replace the
duplicate blocks at all four call sites. Preserve the existing scene resolution,
currentPuzzleIndex threshold, correctStonePos/stonesHasLoaded condition,
timeout, and swallowed-timeout behavior.
- Around line 89-122: The waitForStonesToRender readiness check must not use
canvas pixel presence as a fallback, since pixels appear before stone animation
completes. Remove the pixel-based fallback in waitForStonesToRender and fail
clearly when stoneHandler is unavailable, while preserving the stonesHasLoaded
=== true readiness condition.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 862aeb94-0c09-4fc5-8827-948a536648e0

📥 Commits

Reviewing files that changed from the base of the PR and between c3f5a23 and 016f873.

⛔ Files ignored due to path filters (70)
  • CHANGELOG.md is excluded by !**/*.md
  • e2e/tests/README.md is excluded by !**/*.md
  • e2e/tsconfig.json is excluded by !**/*.json
  • lang/urdu/audios/amazing.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/fantastic.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/great.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ا.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ب.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/بـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ت.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/تـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ث.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ثـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ج.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/جـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ح.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/حـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/خ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/خـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/د.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ذ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ر.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ز.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/س.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/سـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ش.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/شـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ص.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/صـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ض.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ضـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ط.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ظ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ع.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/عـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/غ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/غـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ف.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/فـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ق.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/قـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ل.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/لـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/م.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/مـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ن.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/نـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/و.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ٹ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/پ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/پـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/چ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/چـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ڈ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ڑ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ژ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ک.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/گ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/گـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ں.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ھ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ہ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ہـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ی.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/یـ.mp3 is excluded by !**/*.mp3
  • lang/urdu/audios/ے.mp3 is excluded by !**/*.mp3
  • lang/urdu/ftm_urdu.json is excluded by !**/*.json
  • package-lock.json is excluded by !**/package-lock.json, !**/*.json, !package-lock.json
  • package.json is excluded by !**/*.json
  • tsconfig.json is excluded by !**/*.json
📒 Files selected for processing (37)
  • .circleci/config.yml
  • .gitignore
  • e2e/constants/index.ts
  • e2e/constants/selectors.ts
  • e2e/constants/timeouts.ts
  • e2e/constants/urls.ts
  • e2e/fixtures/game-fixtures.ts
  • e2e/helpers/canvas-helpers.ts
  • e2e/helpers/game-state-helpers.ts
  • e2e/helpers/index.ts
  • e2e/helpers/mock-helpers.ts
  • e2e/helpers/navigation-helpers.ts
  • e2e/pages/base-page.ts
  • e2e/pages/gameplay-page.ts
  • e2e/pages/index.ts
  • e2e/pages/level-end-page.ts
  • e2e/pages/level-selection-page.ts
  • e2e/pages/loading-page.ts
  • e2e/pages/pause-popup-page.ts
  • e2e/pages/start-page.ts
  • e2e/tests/ftm-assessment-survey-flow.spec.ts
  • e2e/tests/isolated/tc-001-app-launch.spec.ts
  • e2e/tests/isolated/tc-002-003-start-screen.spec.ts
  • e2e/tests/isolated/tc-004-005-level-selection.spec.ts
  • e2e/tests/isolated/tc-006-008-gameplay.spec.ts
  • e2e/tests/isolated/tc-009-013-assessment.spec.ts
  • e2e/tests/isolated/tc-014-015-mini-game.spec.ts
  • e2e/tests/isolated/tc-016-level-completion.spec.ts
  • playwright.config.ts
  • public/index.html
  • src/components/stone-handler/stone-handler.ts
  • src/feedTheMonster.ts
  • src/miniGame/miniGames/treasureChest/treasureChestAnimation.ts
  • src/scenes/gameplay-scene/gameplay-flow-manager.spec.ts
  • src/scenes/gameplay-scene/gameplay-flow-manager.ts
  • src/scenes/gameplay-scene/gameplay-scene.ts
  • src/scenes/progress-scene/progress-scene.ts

Comment thread e2e/helpers/canvas-helpers.ts
Comment thread e2e/helpers/game-state-helpers.ts
Comment thread e2e/pages/gameplay-page.ts
Comment thread e2e/pages/level-selection-page.ts
Comment thread e2e/tests/isolated/tc-006-008-gameplay.spec.ts
Comment thread e2e/tests/isolated/tc-009-013-assessment.spec.ts
Comment thread e2e/tests/isolated/tc-014-015-mini-game.spec.ts
Comment thread playwright.config.ts
Comment thread src/scenes/gameplay-scene/gameplay-scene.ts
@ashwinnair-chimple
ashwinnair-chimple merged commit 6c8cf60 into test Jul 28, 2026
5 checks passed
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