UNPKG

postchain-client

Version:

Client library for accessing a Postchain node through REST.

108 lines 6.64 kB
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; import { AnchoringStatus, ResponseStatus } from "../../../src/blockchainClient/enums"; import { CONFIGURED_POLL_COUNT, CONFIGURED_POLL_INTERVAL, mockAnchoringTransaction, mockBuffer, mockClusterAnchoringConfirmationResponse, mockStringBlockchainRid, mockSystemAnchoringConfirmationResponse, mockThirtyTwoBytesBuffer, mockTransactionReceipts, } from "../../common/mocks"; import * as utils from "../../../src/blockchainClient/utils"; import { getTestsClient } from "../../common/setups"; let client; describe("getTransactionConfirmationLevel", () => { beforeAll(() => __awaiter(void 0, void 0, void 0, function* () { client = yield getTestsClient({ dappStatusPolling: utils.setStatusPolling({ interval: CONFIGURED_POLL_INTERVAL, count: CONFIGURED_POLL_COUNT, }), }); })); beforeEach(() => __awaiter(void 0, void 0, void 0, function* () { jest.clearAllMocks(); jest.spyOn(utils, "getAnchoringClientAndSystemChainRid").mockResolvedValue({ anchoringClient: client, systemAnchoringChainBridString: mockStringBlockchainRid, }); })); afterEach(() => { jest.restoreAllMocks(); }); it("returns an error with status FailedAnchoring when cluster anchoring chain confirmation failed", () => __awaiter(void 0, void 0, void 0, function* () { const getTransactionStatusSpy = jest.spyOn(client, "getTransactionStatus").mockResolvedValue({ statusCode: 200, status: ResponseStatus.Confirmed, }); const getClusterAnchoringTransactionConfirmationSpy = jest .spyOn(client, "getClusterAnchoringTransactionConfirmation") .mockResolvedValue(AnchoringStatus.FailedAnchoring); const confirmationLevel = yield client.getTransactionConfirmationLevel(mockThirtyTwoBytesBuffer); expect(confirmationLevel).toEqual({ status: AnchoringStatus.FailedAnchoring, statusCode: 400, transactionRid: mockThirtyTwoBytesBuffer, }); expect(getTransactionStatusSpy).toHaveBeenCalledTimes(1); expect(getClusterAnchoringTransactionConfirmationSpy).toHaveBeenCalledTimes(1); })); it("returns Waiting status for Dapp confirmation", () => __awaiter(void 0, void 0, void 0, function* () { const getTransactionStatusSpy = jest.spyOn(client, "getTransactionStatus").mockResolvedValue({ statusCode: 200, status: ResponseStatus.Waiting, }); const confirmationLevel = yield client.getTransactionConfirmationLevel(mockBuffer); expect(confirmationLevel).toEqual(mockTransactionReceipts.waiting); expect(getTransactionStatusSpy).toHaveBeenCalledTimes(1); })); it("returns Confirmed status for Dapp confirmation", () => __awaiter(void 0, void 0, void 0, function* () { const getTransactionStatusSpy = jest.spyOn(client, "getTransactionStatus").mockResolvedValue({ statusCode: 200, status: ResponseStatus.Confirmed, }); const getClusterAnchoringTransactionConfirmationSpy = jest .spyOn(client, "getClusterAnchoringTransactionConfirmation") .mockResolvedValue(AnchoringStatus.NotAnchored); const confirmationLevel = yield client.getTransactionConfirmationLevel(mockBuffer); expect(confirmationLevel).toEqual(mockTransactionReceipts.confirmed); expect(getTransactionStatusSpy).toHaveBeenCalledTimes(1); expect(getClusterAnchoringTransactionConfirmationSpy).toHaveBeenCalledTimes(1); })); it("returns Anchoring Transaction for Cluster Anchoring Chain confirmation", () => __awaiter(void 0, void 0, void 0, function* () { const getTransactionStatusSpy = jest.spyOn(client, "getTransactionStatus").mockResolvedValue({ statusCode: 200, status: ResponseStatus.Confirmed, }); const getClusterAnchoringTransactionConfirmationSpy = jest .spyOn(client, "getClusterAnchoringTransactionConfirmation") .mockResolvedValue(mockAnchoringTransaction); const getSystemAnchoringTransactionConfirmationSpy = jest .spyOn(client, "getSystemAnchoringTransactionConfirmation") .mockResolvedValue(null); const confirmationLevel = yield client.getTransactionConfirmationLevel(mockBuffer); expect(confirmationLevel).toEqual(mockClusterAnchoringConfirmationResponse); expect(getTransactionStatusSpy).toHaveBeenCalledTimes(1); expect(getClusterAnchoringTransactionConfirmationSpy).toHaveBeenCalledTimes(1); expect(getSystemAnchoringTransactionConfirmationSpy).toHaveBeenCalledTimes(1); })); it("returns Anchoring Transaction for System Anchoring Chain confirmation", () => __awaiter(void 0, void 0, void 0, function* () { const getTransactionStatusSpy = jest.spyOn(client, "getTransactionStatus").mockResolvedValue({ statusCode: 200, status: ResponseStatus.Confirmed, }); const getClusterAnchoringTransactionConfirmationSpy = jest .spyOn(client, "getClusterAnchoringTransactionConfirmation") .mockResolvedValue(mockAnchoringTransaction); const getSystemAnchoringTransactionConfirmationSpy = jest .spyOn(client, "getSystemAnchoringTransactionConfirmation") .mockResolvedValue(mockAnchoringTransaction); const confirmationLevel = yield client.getTransactionConfirmationLevel(mockBuffer); expect(confirmationLevel).toEqual(mockSystemAnchoringConfirmationResponse); expect(getTransactionStatusSpy).toHaveBeenCalledTimes(1); expect(getClusterAnchoringTransactionConfirmationSpy).toHaveBeenCalledTimes(1); expect(getSystemAnchoringTransactionConfirmationSpy).toHaveBeenCalledTimes(1); })); }); //# sourceMappingURL=getTransactionConfirmationLevel.test.js.map