Author physical road furniture, layered terrain and atmosphere, projected illuminated route signs, and detailed Blender coachwork. Refine camera mass, wheel contact, chapter composition, and compact reading space while preserving approved content and audio contracts. Include isolated Blender source, before/after and hardware Chrome motion evidence, preservation hashes, validated preview checks, and documented inherited unit failures.
151 lines
7.1 KiB
Plaintext
151 lines
7.1 KiB
Plaintext
|
||
> portfolio-phase-1@1.0.0 build:preview
|
||
> npm run verify:approved-assets && npm run typecheck && npm run test:unit && npm run build:client && npm run build:ssr && npm run prerender -- --config config/site.preview.json && npm run verify:artifacts -- --config config/site.preview.json && npm run check:budgets:transfer
|
||
|
||
|
||
> portfolio-phase-1@1.0.0 verify:approved-assets
|
||
> node scripts/materialize-empty-asset-set.mjs
|
||
|
||
|
||
> portfolio-phase-1@1.0.0 typecheck
|
||
> vue-tsc --noEmit
|
||
|
||
|
||
> portfolio-phase-1@1.0.0 test:unit
|
||
> vitest run
|
||
|
||
|
||
RUN v4.1.11 /home/luca/Documents/Portfolio/.worktrees/midnight-expressway
|
||
|
||
❯ tests/unit/world-models.test.ts (29 tests | 7 failed) 272ms
|
||
× disposes a composer and its passes exactly once 32ms
|
||
× keeps the grand tourer anatomy readable in desktop and portrait chase views 29ms
|
||
× reflows a visible portrait sign into its navigator-safe pose without a teleport 4ms
|
||
× keeps a short-landscape left sign inside the narrow desktop roadside gutter 3ms
|
||
× places a portrait navigator arrival below its full-width destination panel 3ms
|
||
× grows a medium portrait navigator sign without enlarging the phone pose 7ms
|
||
× places route signs in their authored transition-safe corridors 10ms
|
||
❯ tests/unit/SceneCanvas.test.ts (16 tests | 2 failed) 134ms
|
||
× does not request or render the scene for reduced motion 36ms
|
||
× does not request or render the scene for saved Static mode 6ms
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯ Failed Tests 9 ⎯⎯⎯⎯⎯⎯⎯
|
||
|
||
FAIL tests/unit/SceneCanvas.test.ts > SceneCanvas > does not request or render the scene for reduced motion
|
||
FAIL tests/unit/SceneCanvas.test.ts > SceneCanvas > does not request or render the scene for saved Static mode
|
||
AssertionError: expected [] to have a length of 7 but got +0
|
||
|
||
- Expected
|
||
+ Received
|
||
|
||
- 7
|
||
+ 0
|
||
|
||
❯ tests/unit/SceneCanvas.test.ts:95:9
|
||
93| expect(
|
||
94| wrapper.findAll(".journey-poster-composition > span"),
|
||
95| ).toHaveLength(7);
|
||
| ^
|
||
96| expect(wrapper.find(".journey-poster__sun").exists()).toBe(true);
|
||
97| expect(wrapper.find(".journey-poster__road").exists()).toBe(true…
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[1/9]⎯
|
||
|
||
FAIL tests/unit/world-models.test.ts > procedural world models > disposes a composer and its passes exactly once
|
||
AssertionError: expected 0.39 to be greater than 0.54
|
||
❯ tests/unit/world-models.test.ts:439:32
|
||
437| expect(outputPass.dispose).toHaveBeenCalledOnce();
|
||
438| expect(composer.dispose).toHaveBeenCalledOnce();
|
||
439| expect(bloomPass.strength).toBeGreaterThan(0.54);
|
||
| ^
|
||
440| });
|
||
441|
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[2/9]⎯
|
||
|
||
FAIL tests/unit/world-models.test.ts > procedural world models > keeps the grand tourer anatomy readable in desktop and portrait chase views
|
||
AssertionError: expected 56 to be 66 // Object.is equality
|
||
|
||
- Expected
|
||
+ Received
|
||
|
||
- 66
|
||
+ 56
|
||
|
||
❯ tests/unit/world-models.test.ts:461:52
|
||
459|
|
||
460| const desktopCamera = createChaseCamera(16 / 9);
|
||
461| expect((desktopCamera as { fov: number }).fov).toBe(66);
|
||
| ^
|
||
462| const desktop = projectedBounds(car.group, desktopCamera);
|
||
463| expect(desktop.maxX - desktop.minX).toBeGreaterThan(0.28);
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[3/9]⎯
|
||
|
||
FAIL tests/unit/world-models.test.ts > procedural world models > reflows a visible portrait sign into its navigator-safe pose without a teleport
|
||
AssertionError: expected 595.8091348948393 to be greater than or equal to 626
|
||
❯ tests/unit/world-models.test.ts:818:37
|
||
816| if (presentation === null) throw new Error("Missing navigator-safe…
|
||
817| expect(sign.group.position.distanceTo(midpoint)).toBeGreaterThan(0…
|
||
818| expect(presentation.bounds.top).toBeGreaterThanOrEqual(626);
|
||
| ^
|
||
819| expect(presentation.bounds.bottom).toBeLessThanOrEqual(690);
|
||
820| resources.dispose();
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[4/9]⎯
|
||
|
||
FAIL tests/unit/world-models.test.ts > procedural world models > keeps a short-landscape left sign inside the narrow desktop roadside gutter
|
||
AssertionError: expected -10.199278524338355 to be greater than or equal to 8
|
||
❯ tests/unit/world-models.test.ts:884:38
|
||
882| const presentation = sign.inspect(camera, 780, 493);
|
||
883| if (presentation === null) throw new Error("Missing short-landscap…
|
||
884| expect(presentation.bounds.left).toBeGreaterThanOrEqual(8);
|
||
| ^
|
||
885| expect(presentation.bounds.right).toBeLessThanOrEqual(265);
|
||
886| resources.dispose();
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[5/9]⎯
|
||
|
||
FAIL tests/unit/world-models.test.ts > procedural world models > places a portrait navigator arrival below its full-width destination panel
|
||
AssertionError: expected 595.8091348948393 to be greater than or equal to 626
|
||
❯ tests/unit/world-models.test.ts:921:37
|
||
919| if (presentation === null) throw new Error("Missing portrait navig…
|
||
920| expect(presentation.bounds.left).toBeGreaterThanOrEqual(8);
|
||
921| expect(presentation.bounds.top).toBeGreaterThanOrEqual(626);
|
||
| ^
|
||
922| expect(presentation.bounds.right).toBeLessThanOrEqual(382);
|
||
923| expect(presentation.bounds.bottom).toBeLessThanOrEqual(690);
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[6/9]⎯
|
||
|
||
FAIL tests/unit/world-models.test.ts > procedural world models > grows a medium portrait navigator sign without enlarging the phone pose
|
||
AssertionError: expected 122.59356940139988 to be less than or equal to 110
|
||
❯ tests/unit/world-models.test.ts:958:32
|
||
956|
|
||
957| expect(phone.bounds.width).toBeGreaterThanOrEqual(85);
|
||
958| expect(phone.bounds.width).toBeLessThanOrEqual(110);
|
||
| ^
|
||
959| expect(medium.viewportProfile).toBe("tall");
|
||
960| expect(medium.bounds.width).toBeGreaterThanOrEqual(145);
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[7/9]⎯
|
||
|
||
FAIL tests/unit/world-models.test.ts > procedural world models > places route signs in their authored transition-safe corridors
|
||
AssertionError: expected 656.9555824147709 to be less than or equal to 630
|
||
❯ tests/unit/world-models.test.ts:1013:51
|
||
1011| expect(experiencePresentation?.corridor).toBe("right");
|
||
1012| expect(experiencePresentation?.bounds.top).toBeGreaterThanOrEqual(…
|
||
1013| expect(experiencePresentation?.bounds.bottom).toBeLessThanOrEqual(…
|
||
| ^
|
||
1014|
|
||
1015| sign.update(null);
|
||
|
||
⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯[8/9]⎯
|
||
|
||
|
||
Test Files 2 failed | 47 passed (49)
|
||
Tests 9 failed | 653 passed (662)
|
||
Start at 04:04:19
|
||
Duration 23.81s (transform 17.57s, setup 0ms, import 30.29s, tests 45.44s, environment 19.53s)
|
||
|