Improve MineGeo UI and application flows
Some checks failed
Deploy MineGeo to Dokploy / deploy (push) Failing after 2m37s

This commit is contained in:
2026-10-18 11:44:04 +05:00
parent ad73132f15
commit a7085e4e80
50 changed files with 4790 additions and 703 deletions

View File

@@ -0,0 +1,48 @@
import assert from "node:assert/strict";
import { test } from "node:test";
import {
easeOut,
easeInOut,
enter,
visibility,
shots,
} from "../cinematics/motion.mjs";
test("cinematic timeline preserves all real site captures and covers exactly thirty seconds", () => {
assert.equal(shots[0].start, 0);
assert.equal(shots.at(-1)?.end, 30);
assert.deepEqual(
shots.flatMap((s) => (s.image ? [s.image] : [])),
["home", "catalog", "game", "map"],
);
for (let i = 1; i < shots.length; i++)
assert.equal(shots[i].start, shots[i - 1].end);
});
test("canonical motion curves clamp endpoints and have no overshoot", () => {
for (const curve of [easeOut, easeInOut]) {
assert.equal(curve(-1), 0);
assert.equal(curve(0), 0);
assert.equal(curve(1), 1);
assert.equal(curve(2), 1);
let previous = 0;
for (let i = 0; i <= 100; i++) {
const n = curve(i / 100);
assert.ok(n >= previous && n <= 1);
previous = n;
}
}
assert.ok(
easeOut(0.25) > 0.6,
"the entry must respond promptly rather than ease in",
);
});
test("screenshots settle quickly and stay fully readable throughout the hold", () => {
for (const shot of shots.filter((s) => s.image)) {
assert.equal(enter(shot.start + 0.25, shot.start), 1);
assert.equal(visibility(shot.start + 1, shot.start, shot.end), 1);
assert.equal(visibility(shot.end - 1, shot.start, shot.end), 1);
assert.equal(visibility(shot.end, shot.start, shot.end), 0);
}
});