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');
|
||||
@@ -95,13 +96,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 });
|
||||
@@ -223,7 +224,7 @@ async function capture(page, name, fullPage = false) {
|
||||
await page.locator('.roster-character').filter({ hasText: 'Shellguard' }).click();
|
||||
await page.getByRole('button', { name: /Continue as Shellguard/ }).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();
|
||||
@@ -241,10 +242,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
|
||||
@@ -341,15 +342,15 @@ 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 sourced Call Pet (level 10) and Revive Pet (level 10) are available.',
|
||||
scope: 'Manual Hunter family UI mechanics diagnostic only in disposable Wailing Caverns. Not a Hunter balance certification or Ready-party certification.',
|
||||
scope: 'Manual Hunter family UI mechanics diagnostic only in disposable Stormwind Stockade. Not a Hunter balance certification or Ready-party certification.',
|
||||
familySelectionProof: 'Turtle 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 rendered family selector was enabled at the first post-intro observation with no engaged mobs. A separate earlier diagnostic screenshot and failure.json record the selector disabled while the entrance mobs were engaged; there is no narrow combat-lock screenshot.',
|
||||
callAndRevive: 'Spellbook Call Pet / Revive Pet activation was not covered; the Escape shortcut reached the focused scene but did not open the pause menu in this route. Neither spell was activated by state injection.',
|
||||
visual: { canvasSize, screenshots: [
|
||||
'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-turtle-family-desktop.png',
|
||||
'04-turtle-family-narrow.png',
|
||||
] },
|
||||
@@ -400,7 +401,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(() => {
|
||||
@@ -426,7 +427,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,
|
||||
@@ -434,7 +435,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