mirror of
https://github.com/luckyyzh/pi-agent-integrated.git
synced 2026-10-03 02:59:35 +00:00
feat: integrate Pi backend and Pi Web
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import test from "node:test";
|
||||
import assert from "node:assert/strict";
|
||||
|
||||
async function loadSubject() {
|
||||
return import("./chat-lazy-load.ts");
|
||||
}
|
||||
|
||||
test("shows only the last visible render items", async () => {
|
||||
const { getVisibleRenderWindow } = await loadSubject();
|
||||
assert.deepEqual(getVisibleRenderWindow(200, 50), { startIndex: 150, hasMore: true });
|
||||
});
|
||||
|
||||
test("shows all render items when the visible count reaches the total", async () => {
|
||||
const { getVisibleRenderWindow } = await loadSubject();
|
||||
assert.deepEqual(getVisibleRenderWindow(30, 50), { startIndex: 0, hasMore: false });
|
||||
assert.deepEqual(getVisibleRenderWindow(50, 50), { startIndex: 0, hasMore: false });
|
||||
assert.deepEqual(getVisibleRenderWindow(0, 50), { startIndex: 0, hasMore: false });
|
||||
});
|
||||
|
||||
test("continues paging when render items outnumber source messages", async () => {
|
||||
const { getNextVisibleCount, getVisibleRenderWindow } = await loadSubject();
|
||||
let visibleCount = 50;
|
||||
|
||||
visibleCount = getNextVisibleCount(visibleCount);
|
||||
assert.deepEqual(getVisibleRenderWindow(120, visibleCount), { startIndex: 20, hasMore: true });
|
||||
|
||||
visibleCount = getNextVisibleCount(visibleCount);
|
||||
assert.deepEqual(getVisibleRenderWindow(120, visibleCount), { startIndex: 0, hasMore: false });
|
||||
});
|
||||
|
||||
test("restores the viewport after prepending content", async () => {
|
||||
const { captureScrollDistance, restoreScrollTop } = await loadSubject();
|
||||
const savedDistance = captureScrollDistance(2000, 500);
|
||||
|
||||
assert.equal(savedDistance, 1500);
|
||||
assert.equal(restoreScrollTop(2500, savedDistance), 1000);
|
||||
});
|
||||
|
||||
test("restores top and bottom boundary positions", async () => {
|
||||
const { captureScrollDistance, restoreScrollTop } = await loadSubject();
|
||||
assert.equal(restoreScrollTop(3000, captureScrollDistance(2000, 0)), 1000);
|
||||
assert.equal(restoreScrollTop(3000, captureScrollDistance(2000, 2000)), 3000);
|
||||
});
|
||||
Reference in New Issue
Block a user