* fix(tlon): Fix Zod v4 record() and @urbit/aura v3 API changes
- Fix Zod v4.3.6 bug: single-arg z.record() fails with toJSONSchema()
- Use two-arg form: z.record(z.string(), schema)
- Fixes 'Cannot read properties of undefined (reading _zod)' error
- Fix @urbit/aura v3.0.0 API migration:
- unixToDa() → da.fromUnix()
- formatUd() → scot('ud', ...)
- Fixes '(0 , _aura.unixToDa) is not a function' error
These were blocking Tlon plugin loading and outbound messaging.
* fix: add tlon schema/aura tests (#1631) (thanks @arthyn)
---------
Co-authored-by: Peter Steinberger <steipete@gmail.com>
39 lines
973 B
TypeScript
39 lines
973 B
TypeScript
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
|
|
vi.mock("@urbit/aura", () => ({
|
|
scot: vi.fn(() => "mocked-ud"),
|
|
da: {
|
|
fromUnix: vi.fn(() => 123n),
|
|
},
|
|
}));
|
|
|
|
describe("sendDm", () => {
|
|
afterEach(() => {
|
|
vi.restoreAllMocks();
|
|
});
|
|
|
|
it("uses aura v3 helpers for the DM id", async () => {
|
|
const { sendDm } = await import("./send.js");
|
|
const aura = await import("@urbit/aura");
|
|
const scot = vi.mocked(aura.scot);
|
|
const fromUnix = vi.mocked(aura.da.fromUnix);
|
|
|
|
const sentAt = 1_700_000_000_000;
|
|
vi.spyOn(Date, "now").mockReturnValue(sentAt);
|
|
|
|
const poke = vi.fn(async () => ({}));
|
|
|
|
const result = await sendDm({
|
|
api: { poke },
|
|
fromShip: "~zod",
|
|
toShip: "~nec",
|
|
text: "hi",
|
|
});
|
|
|
|
expect(fromUnix).toHaveBeenCalledWith(sentAt);
|
|
expect(scot).toHaveBeenCalledWith("ud", 123n);
|
|
expect(poke).toHaveBeenCalledTimes(1);
|
|
expect(result.messageId).toBe("~zod/mocked-ud");
|
|
});
|
|
});
|