@nostr-dev-kit/ndk
Version:
NDK - Nostr Development Kit. Includes AI Guardrails to catch common mistakes during development.
45 lines (36 loc) • 1.45 kB
text/typescript
import { mockNutzap, SignerGenerator } from "../../../../test";
import { NDK } from "../../../ndk";
import type { NDKUser } from "../../../user";
import type { NDKNutzap } from "../nutzap";
import { NDKCashuWalletTx } from "./tx";
const FAKE_MINT = "https://cashu.example.com";
const ndk = new NDK({
signer: SignerGenerator.getSigner("bob"),
clientName: "testing",
});
describe("NDKCashuWalletTx", () => {
describe("alice nutzaps bob", () => {
let senderUser: NDKUser;
let nutzap: NDKNutzap;
beforeEach(async () => {
const signer = SignerGenerator.getSigner("alice");
senderUser = await signer.user();
nutzap = (await mockNutzap(FAKE_MINT, 100, ndk, {
senderPk: signer,
})) as unknown as NDKNutzap;
});
it("bob's wallet transaction p-tags alice", async () => {
const tx = new NDKCashuWalletTx(ndk);
tx.addRedeemedNutzap(nutzap);
await tx.sign();
const pTag = tx.tagValue("p");
expect(pTag).toEqual(senderUser.pubkey);
const eTags = tx.getMatchingTags("e");
expect(eTags.length).toEqual(1);
expect(eTags[0][1]).toEqual(nutzap.id);
expect(eTags[0][3]).toEqual(NDKCashuWalletTx.MARKERS.REDEEMED);
const clientTag = tx.tagValue("client");
expect(clientTag).toBe("testing");
});
});
});