forked from phenom/healer-man
Update Healer Man server
This commit is contained in:
1 parent
6cc1b9217f
commit
6114a2295f
67 files changed
+6241
-347
No files matched your search
@@ -1,3 +1,4 @@
|
||||
const { DEFAULT_TEST_DUNGEON_TITLE, selectDefaultTestDungeon, openSelectedDungeonRoles } = require('./playtest-defaults.cjs');
|
||||
const { chromium } = require('C:/Users/phenom/.cache/codex-runtimes/codex-primary-runtime/dependencies/node/node_modules/playwright');
|
||||
const assert = require('node:assert/strict');
|
||||
const fs = require('node:fs');
|
||||
@@ -159,13 +160,13 @@ async function createHunter(page, name) {
|
||||
await page.locator('.main-menu-screen').waitFor();
|
||||
}
|
||||
|
||||
async function enterWailingCaverns(page) {
|
||||
async function enterDefaultTestDungeon(page) {
|
||||
await page.getByRole('button', { name: /Dungeons/ }).click();
|
||||
await page.locator('.dungeon-select-screen').waitFor();
|
||||
await page.locator('.dungeon-category-tab').filter({ hasText: 'WoW' }).click();
|
||||
await page.locator('.dungeon-select-row').filter({ hasText: 'Wailing Caverns' }).click();
|
||||
await page.locator('.dungeon-select-copy h2').getByText(/^Wailing Caverns$/, { exact: true }).waitFor();
|
||||
await page.getByRole('button', { name: /Choose role/ }).click();
|
||||
await selectDefaultTestDungeon(page);
|
||||
await page.locator('.dungeon-select-copy h2').getByText(DEFAULT_TEST_DUNGEON_TITLE, { exact: true }).waitFor();
|
||||
await openSelectedDungeonRoles(page);
|
||||
await page.locator('.dungeon-role-option').filter({ hasText: /DPS/ }).first().click();
|
||||
await waitForGameReady(page);
|
||||
await page.locator('.party-frames').waitFor({ timeout: 180_000 });
|
||||
@@ -257,7 +258,7 @@ async function capture(page, name, fullPage = false) {
|
||||
await page.locator('.roster-character').filter({ hasText: 'Catguard' }).click();
|
||||
await page.getByRole('button', { name: /Continue as Catguard/ }).click({ position: { x: 24, y: 30 } });
|
||||
await page.locator('.main-menu-screen').waitFor();
|
||||
await enterWailingCaverns(page);
|
||||
await enterDefaultTestDungeon(page);
|
||||
|
||||
let selector = page.locator('.hunter-pet-controls select[aria-label="Pet family"]');
|
||||
await selector.waitFor();
|
||||
@@ -278,10 +279,10 @@ async function capture(page, name, fullPage = false) {
|
||||
};
|
||||
assert.equal(entranceLock.selected, 'wolf', 'A new eligible Hunter enters with its default Wolf.');
|
||||
if (entranceLock.disabled) {
|
||||
await capture(page, '01-wailing-entry-combat-locked-desktop');
|
||||
await capture(page, '01-stockade-entry-combat-locked-desktop');
|
||||
await page.setViewportSize({ width: 390, height: 844 });
|
||||
await page.waitForTimeout(350);
|
||||
await capture(page, '02-wailing-entry-combat-locked-narrow');
|
||||
await capture(page, '02-stockade-entry-combat-locked-narrow');
|
||||
await page.setViewportSize({ width: 1440, height: 1000 });
|
||||
}
|
||||
// Entrance mobs must die through the ordinary party simulation before the
|
||||
@@ -508,18 +509,18 @@ async function capture(page, name, fullPage = false) {
|
||||
passed: true,
|
||||
server: 'ephemeral localhost server with disposable OS-temp data directory and isolated Playwright context',
|
||||
characterSeed: 'Two Marksmanship Hunters created through the normal UI; both advanced to level 10 through shellStore.saveActiveProgression in the isolated QA fixture so the level-10 family controls and Cat skill ranks could be inspected. This is eligibility setup, not earned progression.',
|
||||
scope: 'Manual Hunter Cat family UI diagnostic only in disposable Wailing Caverns. Not a Hunter balance certification or Ready-party certification.',
|
||||
scope: 'Manual Hunter Cat family UI diagnostic only in disposable Stormwind Stockade. Not a Hunter balance certification or Ready-party certification.',
|
||||
familySelectionProof: 'Cat was selected through the rendered Pet family select while the live runtime reported no engaged mobs; the selected character’s saved value was re-read after page reload, and a separate UI-created Hunter remained Wolf.',
|
||||
combatLockProof: entranceLock.disabled
|
||||
? 'At entry, live Wailing Caverns mobs were engaged and the rendered family selector was disabled; later it enabled only after the real encounter ended.'
|
||||
? 'At entry, live Stormwind Stockade mobs were engaged and the rendered family selector was disabled; later it enabled only after the real encounter ended.'
|
||||
: 'The Cat run’s first observation came after the entrance pack had ended; this run did not capture an in-combat Cat-family lock state. Earlier Hunter family QA covered the lock with Wolf/Turtle.',
|
||||
callAndRevive: spellRoute,
|
||||
commandReactProof,
|
||||
catAbilityProof: 'The active player-owned pet runtime profile reports Claw 16828 rank 2, Rake 59881 rank 1, and Prowl 24450 rank 1 at level 10. It has neither Bite, Furious Howl, nor Shell Shield. This profile/readiness evidence does not prove live Rake or Prowl casts.',
|
||||
visual: { renderReadyProof, bossIntroObserved, screenshots: [
|
||||
...(entranceLock.disabled ? [
|
||||
'01-wailing-entry-combat-locked-desktop.png',
|
||||
'02-wailing-entry-combat-locked-narrow.png',
|
||||
'01-stockade-entry-combat-locked-desktop.png',
|
||||
'02-stockade-entry-combat-locked-narrow.png',
|
||||
] : []),
|
||||
'03-cat-family-desktop.png',
|
||||
'04-cat-family-narrow.png',
|
||||
@@ -572,7 +573,7 @@ async function capture(page, name, fullPage = false) {
|
||||
}).catch((diagnosticError) => ({ error: diagnosticError.message }));
|
||||
let narrowEvidence = null;
|
||||
if (page) {
|
||||
await page.screenshot({ path: path.join(directory, '01-wailing-entry-desktop-diagnostic.png'), fullPage: false }).catch(() => undefined);
|
||||
await page.screenshot({ path: path.join(directory, '01-stockade-entry-desktop-diagnostic.png'), fullPage: false }).catch(() => undefined);
|
||||
await page.setViewportSize({ width: 390, height: 844 }).catch(() => undefined);
|
||||
await page.waitForTimeout(350).catch(() => undefined);
|
||||
narrowEvidence = await page.evaluate(() => {
|
||||
@@ -598,7 +599,7 @@ async function capture(page, name, fullPage = false) {
|
||||
partyClearance: partyFrames && petFrame ? petFrame.getBoundingClientRect().top - partyFrames.getBoundingClientRect().bottom : null,
|
||||
};
|
||||
}).catch(() => null);
|
||||
await page.screenshot({ path: path.join(directory, '02-wailing-entry-narrow-diagnostic.png'), fullPage: false }).catch(() => undefined);
|
||||
await page.screenshot({ path: path.join(directory, '02-stockade-entry-narrow-diagnostic.png'), fullPage: false }).catch(() => undefined);
|
||||
}
|
||||
const failure = {
|
||||
passed: false,
|
||||
@@ -606,7 +607,7 @@ async function capture(page, name, fullPage = false) {
|
||||
error: { name: error.name, message: error.message },
|
||||
diagnostic,
|
||||
narrowEvidence,
|
||||
screenshots: ['failure.png', '01-wailing-entry-desktop-diagnostic.png', '02-wailing-entry-narrow-diagnostic.png'],
|
||||
screenshots: ['failure.png', '01-stockade-entry-desktop-diagnostic.png', '02-stockade-entry-narrow-diagnostic.png'],
|
||||
consoleErrors,
|
||||
httpErrors,
|
||||
recentRequests: recentRequests.slice(-30),
|
||||
|
||||
Reference in new issue
Block a user