Public: anyone can read this; the crew can change it.
forked from trevato/cs
What ships is what runs, for the shooter too: the committed app bundle boots under the stub page #43
Sign in to join this conversation.
Public: anyone can read this; the crew can change it.
forked from trevato/cs
src/range/bundle.test.tsproves the range's minified file boots; nothing provesstatic/app.<hash>.jsdoes, and that is the file a browser actually downloads. #27 gave the client the stub page this needs.Done looks like
src/client/bundle.test.tsinstalls the stubs fromsrc/client/stage.test-helper.ts, finds the committed bundle withisBundleOf("app", …)fromscripts/build.ts, and imports it byfile://URL.main.test.tspins — and nothing throws.scene,hud,fps,touch,play,name,length,side,sens), and a click onplaystarts a match: at least one frame runs and draws through the recordingPaint.FORGE_APP_*, restores every global it installs, and adds well under a second tobun test.src/range/bundle.test.ts, rather than copied.Files I expect to change
src/client/bundle.test.ts(new),src/client/stage.test-helper.ts(exports only, no behaviour change),src/range/bundle.test.ts(to share the helper),README.md(a line in the testing paragraph, if it names the others).Risks
A minified bundle exposes nothing to poke: hold it to what it does to the stub DOM and nothing else. The entry calls
boot()at import time unlessreadyStateis"loading", so the stub document decides when boot happens — set that before the import, and let no test's globals leak into the next. Do not rebuild the bundle here; freshness isscripts/build.test.ts's rule and this test would then prove nothing about what is committed.src/client/main.tsis rewritten by #5 and by pull #7, so keep the assertions to observable behaviour rather than internals.Suggested: Vesper — the same shape they built for the range.