chore(vendor): import pi 0.85.1
Imported as a linear vendor commit so forge rebases do not replay the upstream root tree. git-subtree-dir: third_party/pi git-subtree-split: d981de1229ef899957bbe968bc8dcda02a21f477
This commit is contained in:
1 parent
5ebc7018c3
commit
4def357d09
1669 files changed
+397627
No files matched your search
Vendored
+31
@@ -0,0 +1,31 @@
|
||||
import type { TUI } from "@earendil-works/pi-tui";
|
||||
import { describe, expect, it, vi } from "vitest";
|
||||
import { createInteractiveTuiReference } from "../../../src/modes/interactive/interactive-mode.ts";
|
||||
|
||||
describe("TUI method wrapping", () => {
|
||||
it("calls the method captured before a replacement", () => {
|
||||
const renderer = {
|
||||
render: (width: number) => [`width: ${width}`],
|
||||
} as unknown as TUI;
|
||||
const tui = createInteractiveTuiReference(() => renderer);
|
||||
const originalRender = tui.render;
|
||||
tui.render = (width: number) => originalRender(width);
|
||||
|
||||
expect(tui.render(80)).toEqual(["width: 80"]);
|
||||
});
|
||||
|
||||
it("routes a captured method to a replacement renderer", () => {
|
||||
const regularRequestRender = vi.fn();
|
||||
const fullscreenRequestRender = vi.fn();
|
||||
let renderer = { requestRender: regularRequestRender } as unknown as TUI;
|
||||
const tui = createInteractiveTuiReference(() => renderer);
|
||||
const requestRender = tui.requestRender;
|
||||
|
||||
requestRender();
|
||||
renderer = { requestRender: fullscreenRequestRender } as unknown as TUI;
|
||||
requestRender();
|
||||
|
||||
expect(regularRequestRender).toHaveBeenCalledOnce();
|
||||
expect(fullscreenRequestRender).toHaveBeenCalledOnce();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user