diff --git a/scripts/verify-release-candidate.mjs b/scripts/verify-release-candidate.mjs index b090b63..7764042 100644 --- a/scripts/verify-release-candidate.mjs +++ b/scripts/verify-release-candidate.mjs @@ -234,6 +234,36 @@ try { `Expected mid-campaign deployment preview to avoid duplicate tiles: ${JSON.stringify(midCampState?.sortieDeploymentPreview)}` ); + const midCampSelectedSortieUnitIds = midCampState.selectedSortieUnitIds ?? []; + const midCampDeploymentPreview = midCampState.sortieDeploymentPreview ?? []; + const midCampNextBattleId = midCampState.nextSortieBattleId; + await page.mouse.click(1160, 38); + await waitForSortiePrep(page); + await page.screenshot({ path: `${screenshotDir}/rc-mid-camp-sortie-prep.png`, fullPage: true }); + await assertCanvasPainted(page, 'mid camp sortie prep'); + await page.mouse.click(1116, 656); + await advanceUntilBattle(page, midCampNextBattleId); + await page.screenshot({ path: `${screenshotDir}/rc-mid-camp-next-battle.png`, fullPage: true }); + await assertCanvasPainted(page, 'mid camp next battle'); + + const midNextBattleProbe = await page.evaluate(() => window.__HEROS_DEBUG__?.battle()); + assert(midNextBattleProbe?.battleId === midCampNextBattleId, `Expected mid-campaign sortie to enter next battle: ${JSON.stringify(midNextBattleProbe)} / ${midCampNextBattleId}`); + assertSameMembers( + midNextBattleProbe?.selectedSortieUnitIds, + midCampSelectedSortieUnitIds, + `Expected mid-campaign next battle to receive selected sortie ids: ${JSON.stringify(midNextBattleProbe?.selectedSortieUnitIds)} / ${JSON.stringify(midCampSelectedSortieUnitIds)}` + ); + assertSameMembers( + midNextBattleProbe?.deployedAllyIds, + midCampSelectedSortieUnitIds, + `Expected mid-campaign next battle deployed allies to match sortie ids: ${JSON.stringify(midNextBattleProbe?.deployedAllyIds)} / ${JSON.stringify(midCampSelectedSortieUnitIds)}` + ); + assertDeploymentMatchesPreview( + midNextBattleProbe?.deployedAllyPositions, + midCampDeploymentPreview, + `Expected mid-campaign next battle ally positions to match deployment preview: ${JSON.stringify(midNextBattleProbe?.deployedAllyPositions)} / ${JSON.stringify(midCampDeploymentPreview)}` + ); + await seedCampaignSave(page, { battleId: 'sixty-sixth-battle-wuzhang-final', battleTitle: '오장원 최종전',