Files
NumberSwipe_New/wechat-campaign-200-r2/qa/ios-clear-ui-check-20261023.txt
T

131 lines
9.6 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
> numberswipe-main@1.0.0 check
> npm run build && npm test && npm run smoke
> numberswipe-main@1.0.0 build
> node build.mjs
Built campaign-200-r2: 200 levels
> numberswipe-main@1.0.0 test
> node --test *.test.mjs
✔ 手机没有浏览器音频接口时,原生播放器仍能播放全部 36 步和六类反馈音 (5.9102ms)
✔ 关闭音效停止播放;再次开启会试听并保存偏好;后台中断停止所有播放器 (0.8733ms)
✔ 延迟通关音在静音或进入后台时取消,不在返回后突然播放 (46.9464ms)
✔ 音频错误可诊断,不再静默吞掉 (0.7341ms)
✔ 所有音频均为非静音 PCM;原版第13步比第1步高一个八度 (37.8488ms)
✔ 教学和组合规则用具体动作及奇偶例子解释,没有未解释的术语 (23.6071ms)
✔ 过关提示同步使用实际播放起点,非请求时间 (0.8329ms)
✔ 过关短句使用用户提供的3秒WAV,不与旧和弦叠加 (2.4877ms)
✔ jingle end, cancellation and playback error restore BGM without restarting (8.08ms)
✔ muted effects never duck BGM and unrelated effect errors cannot end jingle ducking (0.5505ms)
✔ hide and music preference do not revive playback through a late jingle callback (0.7296ms)
✔ BGMB is absent from the runtime manifest and music package (1.0822ms)
✔ merged irregular outlines retain holes and never draw internal unit edges (91.9791ms)
✔ all 200 boards fit four screen budgets with stable safe anchors and real shared entrances (993.2033ms)
✔ guides through every irregular block stay inside its occupied shape (55.1344ms)
✔ visited, conflicting and hinted category cells retain their material identity (17.1667ms)
✔ five font subsets match their manifest and fit the package budget (5.7186ms)
✔ upstream adapter fails closed if the inspected render seams change (2.9204ms)
✔ procedural cushion pixels preserve holes and light the upper bevel without a border (32.5702ms)
✔ visible glyph bounds are centered independently of font ascent and side bearings (2.2832ms)
✔ stage with zero depth casts alpha shadows without painting a solid backing (9.4926ms)
✔ native width-only TextMetrics still centers the rasterized glyph ink (5.6814ms)
✔ fixed channels remain anchored at their block centers after number enlargement (1574.5104ms)
✔ checkpoint ribbons trigger on correct arrival only and never duplicate per frame (5.6473ms)
✔ checkpoint pulse is small, centered in time and settles without looping (0.6263ms)
✔ event batches preserve every landing and sequence but commit only highest audio and haptic (5.1006ms)
✔ completion waits at most 120ms and ignores late audio callbacks (1.0139ms)
✔ light haptics are limited, checkpoint replaces light, and completion adds only one delayed short pulse (1.1484ms)
✔ unsupported graded haptic falls back to one short pulse, never long vibration (0.9185ms)
✔ haptic disable, preview and lifecycle cancellation suppress delayed or expired work (1.7776ms)
✔ late failed haptic requests cannot revive old pulses and ungraded completion falls back once (0.5243ms)
✔ rectangles, concave shapes and hexagons require geometric inward distance without treating internal seams as walls (1.8735ms)
✔ one high-speed native move records all intermediate cells and completion without duplicate final node (225.2218ms)
✔ legal but off-solution moves use public rules, while invalid clues only produce error (107.8661ms)
✔ drag near a previous-block boundary cannot undo; deeper entry can, and undo button remains immediate (118.274ms)
✔ tutorial, redraw, hint and restored saved routes do not generate player feedback (151.5673ms)
✔ pressure and rebound have bounded amplitude and duration (0.8228ms)
✔ interpolation cannot duplicate the same failed-cell event within one native movement (0.4525ms)
✔ nodes are driven by explicit events even when multiple arrive before rendering; at most two ribbons survive (47.005ms)
✔ audio fast moves merge to latest pitch and completion stops the whole four-channel pool (3.1293ms)
✔ settings persist haptic preference independently and chapter cards always use three columns (121.6619ms)
✔ original audio is preserved and high pitches lose energy rather than growing sharper (14.463ms)
✔ empty, partial and wrong routes reveal the first incomplete full segment (3.2962ms)
✔ completion hides the hint; repeat clicks cannot skip; undo and restart return to earlier segments (0.7181ms)
✔ all 200 levels reveal consecutive segments without changing the player path (2441.6873ms)
✔ hint draws skip player edges and mask visited cells on their own layer; compositing is restored (1.7172ms)
✔ parity is a segment anchor; colour is not; flow moves continuously across cells (0.6727ms)
✔ coral teaching ribbon preserves visited masks and offers direction in reduced motion (2.9315ms)
✔ hint rounds shared guide junctions and keeps separate runs disconnected (0.6576ms)
✔ 实际教学关动画:basic (10.2107ms)
✔ 实际教学关动画:walls (1.4202ms)
✔ 实际教学关动画:straight (6.6802ms)
✔ 实际教学关动画:vertical (3.9633ms)
✔ 实际教学关动画:corner (1.5938ms)
✔ 实际教学关动画:colour (0.8024ms)
✔ 实际教学关动画:parity (0.8455ms)
✔ 实际教学关动画:rhythm-door (1.0885ms)
✔ 实际教学关动画:hex (0.8294ms)
✔ 实际教学关动画:unknown-start (1.8172ms)
✔ 200关的组合规则均能找到对应真实教学关 (147.4251ms)
✔ 教学减速,结束停留1秒后自动循环 (8.2263ms)
✔ music loops independently, persists mute and cancels in background (5.8993ms)
✔ old arrows retain distance, rush to endpoint and fresh arrows move at base speed (0.9877ms)
✔ settings have exactly three independent preferences, and hint has its own cue (236.4223ms)
✔ actual fixed numeric node uses checkpoint pitch, final cell uses complete chord (195.7976ms)
✔ selected menu and BGMA loop are stereo PCM WAV with complete musical durations (10.0711ms)
✔ selected runtime WAVs retain the original durations after sample-rate adaptation (28.814ms)
✔ gameplay ambient uses lower scene volume and keeps independent mute and resume behavior (0.753ms)
✔ all 200 levels: valid numeric, parity and direction arrivals play checkpoint pitch; final arrival only completes (31077.6635ms)
✔ drag back and undo button both vibrate lightly; disabling vibration suppresses both (52.4789ms)
✔ haptic cadence is approximately 15 percent denser without changing light or medium grades (1.176ms)
✔ regular and special scale settle at 90ms with a larger special peak (0.1979ms)
✔ rendered undo target and nonnumeric checkpoint animate immediately without adding ribbons (6.4606ms)
✔ quick undo cancels removed node rebound, including last-step removal (1.8244ms)
✔ navigation buttons use the same selection cue and settings include uniform colons (38.8292ms)
✔ early next during confetti cancels warming; settled ceremony reuses its background (174.7924ms)
✔ font corpus includes every settings label including music le glyph (0.6513ms)
✔ first launch goes directly to gameplay (123.2517ms)
✔ resume unfinished route after exit from gameplay (261.6998ms)
✔ resume unfinished route after exit from selection (197.5838ms)
✔ completed level resumes next unfinished, including leaving from cleared screen (142.5187ms)
✔ replaying a cleared level does not replace the unfinished save (123.7502ms)
✔ legacy saves, malformed data and full completion have valid startup targets (97.8607ms)
✔ selection pages expose fifteen cards and fit phone safe areas (336.2497ms)
✔ hint-only frames reuse static UI, and player input invalidates it (77.9032ms)
✔ hint curves are cached and distance lookup is stable at boundaries (1.2382ms)
✔ new-mechanic lesson reuses the board while the continuous cursor advances (69.3608ms)
✔ BGMA stays continuous across level changes and completion redraws (2.4107ms)
✔ subpackage completion never plays a stale scene after hiding, muting, or clearing (0.7081ms)
✔ music load failure is silent and one real resume can retry; muted pending loads stay silent (0.4878ms)
✔ runtime uses supplied WAV hashes and ships music as a subpackage with a small main bundle (181.1113ms)
✔ title is centered and selection settings share the progress and level-range row (350.0215ms)
✔ completion ducks BGMA until jingle ends and next level never restarts it (171.2163ms)
✔ title artwork is a transparent, high resolution PNG packaged locally (4.8826ms)
✔ asynchronous native image load requests a repaint and draws the artwork without a font substitute (0.9964ms)
✔ artwork stays above progress pills and clear of settings; fifteen cards still fit all phone sizes (477.1889ms)
✔ undo button reverses seven played steps as 7,6,5,4,3,2,1 (272.0277ms)
✔ drag reverses seven played steps as 7,6,5,4,3,2,1 (195.1025ms)
✔ completion amplitude is reduced 15 percent while node, undo and restart volumes stay unchanged (1.5768ms)
✔ fast reverse coalesces to the latest descending pitch and cannot replay an old forward note (2.1951ms)
✔ all prepared routes match the immutable level hash and public rules (25.8434ms)
✔ entering next level draws the live board once and preserves the running BGMA player (1930.219ms)
✔ next-board warming advances one item per frame and cancels on deadline, replacement or hide (0.9028ms)
✔ idle material warming never changes the player path or emits sound and vibration (106.5281ms)
ℹ tests 104
ℹ suites 0
ℹ pass 104
ℹ fail 0
ℹ cancelled 0
ℹ skipped 0
ℹ todo 0
ℹ duration_ms 31744.7934
> numberswipe-main@1.0.0 smoke
> node smoke.mjs
PASS 200/200: r2源文件哈希一致、唯一解、微信发布包触摸通关、撤销/重开/指路、存档/音效设置恢复、前后台切换。