selftest.html only imports; each lane owns js/tests/<letter>.test.js. Five lanes sharing one selftest.html would be the single guaranteed merge conflict in the repo, so the stubs are pre-created with each lane's PLAN3D asserts written into the header. No rAF anywhere: it's throttled in a hidden tab, so a rAF-driven selftest would pass only while you watch it. fixedLoop() drives time instead. Lane A's suite covers the §5-A acceptance criteria, including "camera never clips through house" — stated as the underlying invariant (no solid between the player's head and the camera) so it survives Lane E swapping the house GLB. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
29 lines
1.2 KiB
JavaScript
29 lines
1.2 KiB
JavaScript
/**
|
||
* Lane E selftests — asset sanity.
|
||
*
|
||
* Lane E owns this file. Lane A pre-created it so adding your suite never means
|
||
* editing selftest.html.
|
||
*
|
||
* Most of Lane E's verification is the Blender-side contact sheet against the
|
||
* 1.7 m ref capsule (PLAN3D §5-E), which this harness can't see. What IS worth
|
||
* asserting here, once the GLBs land, is the stuff that silently breaks the
|
||
* other lanes:
|
||
* 1. every GLB loads without error through the vendored GLTFLoader.
|
||
* 2. scale sanity — a loaded tree's bounding box is 4–9 m tall, the fence
|
||
* panel is ~1.6 m, the shackle is ~0.1 m. A model exported in centimetres
|
||
* looks fine alone and absurd next to a person.
|
||
* 3. the named nodes the other lanes query actually exist:
|
||
* tree_gum_01 → `trunk`, `canopy_*`, `branch_anchor_*`
|
||
* house_yardside → `fascia_anchor_*`
|
||
* Lane A sways the canopies by name; Lane B reads branch anchors.
|
||
*
|
||
* Loading is async — `export default async function run(t)` is supported.
|
||
* Useful import:
|
||
* import { GLTFLoader } from '../../vendor/addons/loaders/GLTFLoader.js';
|
||
*/
|
||
|
||
/** @param {import('../testkit.js').Suite} t */
|
||
export default function run(t) {
|
||
t.skip('yard asset GLBs not landed yet — Lane E');
|
||
}
|