postchain-client
Version:
Client library for accessing a Postchain node through REST.
78 lines • 3.31 kB
JavaScript
import { AnchoringTransactionSchema } from "../../../src/blockchainClient/validation/anchoringTransaction";
import { mockAnchoringTransaction, mockThirtyTwoBytesBuffer } from "../../common/mocks";
describe("AnchoringTransactionSchema Validation", () => {
it("should pass validation for a valid transaction", () => {
const result = AnchoringTransactionSchema.safeParse(mockAnchoringTransaction);
expect(result.success).toBe(true);
});
it("should fail validation with invalid txRid length", () => {
const invalidAnchoringTransaction = {
txRid: Buffer.from("123"),
txData: Buffer.from("some data"),
txOpIndex: 1,
};
const result = AnchoringTransactionSchema.safeParse(invalidAnchoringTransaction);
if (!result.success) {
expect(result.error.issues[0].message).toBe("Rid must be 32 bytes long");
}
else {
throw new Error("Expected validation to fail, but it succeeded");
}
});
it("should fail validation with empty txRid", () => {
const invalidAnchoringTransaction = {
txRid: Buffer.from(""),
txData: Buffer.from("some data"),
txOpIndex: 1,
};
const result = AnchoringTransactionSchema.safeParse(invalidAnchoringTransaction);
if (!result.success) {
expect(result.error.issues[0].message).toBe("Rid must be 32 bytes long");
}
else {
throw new Error("Expected validation to fail, but it succeeded");
}
});
it("should fail validation with invalid txData", () => {
const invalidAnchoringTransaction = {
txRid: mockThirtyTwoBytesBuffer,
txData: Buffer.from(""),
txOpIndex: 1,
};
const result = AnchoringTransactionSchema.safeParse(invalidAnchoringTransaction);
if (!result.success) {
expect(result.error.issues[0].message).toBe("txData must be a non-empty Buffer");
}
else {
throw new Error("Expected validation to fail, but it succeeded");
}
});
it("should fail validation with invalid txOpIndex", () => {
const invalidAnchoringTransaction = {
txRid: mockThirtyTwoBytesBuffer,
txData: Buffer.from("some data"),
txOpIndex: -1,
};
const result = AnchoringTransactionSchema.safeParse(invalidAnchoringTransaction);
if (!result.success) {
expect(result.error.issues[0].message).toBe("txOpIndex must be a non-negative integer");
}
else {
throw new Error("Expected validation to fail, but it succeeded");
}
});
it("should fail validation when anchoring transaction properties are missing", () => {
const incompleteAnchoringTransaction = {
txData: Buffer.from("some data"),
txOpIndex: 1,
};
const result = AnchoringTransactionSchema.safeParse(incompleteAnchoringTransaction);
if (!result.success) {
expect(result.error.issues[0].path).toStrictEqual(["txRid"]);
}
else {
throw new Error("Expected validation to fail, but it succeeded");
}
});
});
//# sourceMappingURL=anchoringTransaction.test.js.map