UNPKG

postchain-client

Version:

Client library for accessing a Postchain node through REST.

91 lines 3.32 kB
import { validateTransactionStatusReponse } from "../../../src/blockchainClient/validation/transactionStatusReponse"; import { ResponseStatus, AnchoringStatus } from "../../../src/blockchainClient/enums"; describe("validateTransactionStatusReponse", () => { it("validates a valid transaction status response", () => { const validInput = { statusCode: 200, result: { status: ResponseStatus.Confirmed, }, }; const result = validateTransactionStatusReponse(validInput); expect(result).toEqual({ statusCode: 200, status: ResponseStatus.Confirmed, }); }); it("validates a valid anchoring status object", () => { const validInput = { statusCode: 200, result: { status: AnchoringStatus.ClusterAnchored, }, }; const result = validateTransactionStatusReponse(validInput); expect(result).toEqual({ statusCode: 200, status: AnchoringStatus.ClusterAnchored, }); }); it("validates an object with rejectReason", () => { const validInput = { statusCode: 400, result: { status: ResponseStatus.Confirmed, rejectReason: "Invalid input", }, }; const result = validateTransactionStatusReponse(validInput); expect(result).toEqual({ statusCode: 400, status: ResponseStatus.Confirmed, rejectReason: "Invalid input", }); }); it("validates an object with null statusCode", () => { const validInput = { statusCode: null, result: { status: ResponseStatus.Confirmed, }, }; const result = validateTransactionStatusReponse(validInput); expect(result).toEqual({ statusCode: null, status: ResponseStatus.Confirmed, }); }); it("throws error for invalid status", () => { const invalidInput = { statusCode: 200, result: { status: "INVALID_STATUS", }, }; expect(() => validateTransactionStatusReponse(invalidInput)).toThrow("Model does not match TransactionStatusReponse"); }); it("throws error for missing result", () => { const invalidInput = { statusCode: 200, }; expect(() => validateTransactionStatusReponse(invalidInput)).toThrow("Model does not match TransactionStatusReponse"); }); it("throws error for missing status", () => { const invalidInput = { statusCode: 200, result: {}, }; expect(() => validateTransactionStatusReponse(invalidInput)).toThrow("Model does not match TransactionStatusReponse"); }); it("throws error for invalid rejectReason type", () => { const invalidInput = { statusCode: 200, result: { status: ResponseStatus.Confirmed, rejectReason: 123, }, }; expect(() => validateTransactionStatusReponse(invalidInput)).toThrow("Model does not match TransactionStatusReponse"); }); }); //# sourceMappingURL=statusObject.test.js.map