Back to Limb Race
SOURCE / PINNED RELEASE

Made of little things.

Limb Race

Release
6a8ae4fc626e…
Author-recorded commit
008c01ee6454…
License
LICENSE
Author’s source reference
nostr://npub182jczunncwe0jn6frpqwq3e0qjws7yqqnc3auccqv9nte2dnd63scjm4rf/wss%3A%2F%2Fgit.napplet.soy%2F/n-c2869f12ad8

Archive hash verified: 7be8492d1f89b891…. The source-to-build association is the author’s claim; it has not been independently rebuilt.

tests/improvements-smoke.mjs
import {createRequire} from 'node:module';import {realpathSync} from 'node:fs';import assert from 'node:assert/strict';
const require=createRequire(realpathSync(new URL('../node_modules/@napplet/conformance-cli/package.json',import.meta.url)));const {chromium}=require('playwright');assert.ok(process.argv[2]);
const browser=await chromium.launch({headless:true});
try{
const page=await browser.newPage({viewport:{width:900,height:600}}),errors=[];page.on('pageerror',e=>errors.push(e.message));await page.goto(process.argv[2]);await page.waitForTimeout(1600);
const f=page.frames().find(f=>f.url()==='about:srcdoc');assert.ok(f);
await page.locator('iframe').evaluate(el=>{el.style.cssText='position:fixed;inset:0;width:900px;height:600px;min-height:0;border:0;z-index:9999';});
assert.equal(await f.locator('[data-preset="wheel"]').count(),0);
const box=await f.locator('#draw-canvas').boundingBox();assert.ok(Math.abs(box.width-box.height)<1);
// Draw actual strokes into the four square corners, beyond the old circular bounds.
const x=box.x+box.width/2,y=box.y+box.height/2,r=box.width*.43;
for(const [dx,dy]of [[1,1],[-1,1],[-1,-1],[1,-1]]){await page.mouse.move(x,y);await page.mouse.down();await page.mouse.move(x+dx*r+1,y+dy*r+1,{steps:1});await page.mouse.up();}
assert.equal(await f.locator('#ink-count').innerText(),'4 / 8 strokes');
await f.locator('#track-picker').click();assert.equal(await f.locator('.track-option').count(),10);await f.locator('.track-option').filter({hasText:'Step It Up'}).click();
await f.locator('#material').click();assert.equal(await f.locator('#material').innerText(),'Bendy');assert.match(await f.locator('#board-mode').innerText(),/BENDY/);
await f.locator('#race').click();assert.equal(await f.locator('#material').isDisabled(),true);
await page.waitForTimeout(3500);await f.locator('body').screenshot({path:'.napplet-space/promotion/bendy-ledges.png'});
await f.locator('#message-title').filter({hasText:'Look at you go.'}).waitFor({timeout:60000});console.log('BENDY LEDGES',await f.locator('#message-detail').innerText());
await f.locator('#share-result').click();await f.locator('#share-result').filter({hasText:'Time shared'}).waitFor({timeout:30000});await f.locator('#message-action').click();
assert.equal(await f.locator('.score-row').count(),1);await f.locator('.score-row').click();assert.match(await f.locator('#design-detail').innerText(),/Bendy/);await f.locator('#use-design').click();assert.equal(await f.locator('#material').innerText(),'Bendy');
await f.locator('#shared').click();await f.locator('.score-row').first().waitFor({timeout:10000});assert.match(await f.locator('#score-list').innerText(),/Guest racer/);
await f.locator('#personal').click();await f.locator('#material').click();assert.equal(await f.locator('.score-row').count(),0);assert.match(await f.locator('#board-mode').innerText(),/RIGID/);
await f.locator('#material').click();assert.equal(await f.locator('.score-row').count(),1);
await f.locator('#live').click();await f.locator('#race').click();await f.locator('[data-preset="runner"]').click();assert.equal(await f.locator('#material').isDisabled(),true);assert.equal(await f.locator('#clear').isDisabled(),false);
assert.deepEqual(errors,[]);console.log('PASS: square corner drawing, Bendy ledges, mode locking, saved material, isolated rankings and Live Draw.');
}finally{await browser.close();}