import flatMap from "lodash/flatMap"; import { fromAccountRaw, groupAccountOperationsByDay } from "../../account"; import { TezosAccountRaw } from "../../families/tezos/types"; import { setSupportedCurrencies } from "../../currencies"; import { setupMockCryptoAssetsStore } from "@ledgerhq/cryptoassets/cal-client/test-helpers"; import { LiveConfig } from "@ledgerhq/live-config/LiveConfig"; setSupportedCurrencies(["tezos"]); LiveConfig.setConfig({ feature_cal_lazy_loading: { type: "boolean", default: true, }, }); setupMockCryptoAssetsStore(); let account: Awaited>; beforeAll(async () => { account = await fromAccountRaw({ id: "libcore:1:tezos:A:tezbox", seedIdentifier: "B", name: "Tezos 3", derivationMode: "tezbox", index: 2, freshAddress: "me", freshAddressPath: "44'/1729'/2'/0'", blockHeight: 140408643618744, operations: [ { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711602, hash: "one", id: "libcore:1:tezos:A:tezbox-one-OUT", recipients: ["other2"], senders: ["me"], type: "OUT", extra: {}, date: "2019-11-27T15:29:27.000Z", value: "211000", fee: "11000", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711602, hash: "one", id: "libcore:1:tezos:A:tezbox-one-REVEAL", recipients: [""], senders: ["me"], type: "REVEAL", extra: {}, date: "2019-11-27T15:29:27.000Z", value: "11000", fee: "11000", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711448, hash: "two", id: "libcore:1:tezos:A:tezbox-two-IN", recipients: ["me"], senders: ["other"], type: "IN", extra: {}, date: "2019-11-27T12:52:07.000Z", value: "500000", fee: "259500", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711445, hash: "three", id: "libcore:1:tezos:A:tezbox-three-OUT", recipients: ["other"], senders: ["me"], type: "OUT", extra: {}, date: "2019-11-27T12:49:07.000Z", value: "986580", fee: "13420", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711445, hash: "three", id: "libcore:1:tezos:A:tezbox-three-REVEAL", recipients: [""], senders: ["me"], type: "REVEAL", extra: {}, date: "2019-11-27T12:49:07.000Z", value: "13420", fee: "13420", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711438, hash: "four", id: "libcore:1:tezos:A:tezbox-four-IN", recipients: ["me"], senders: ["other2"], type: "IN", extra: {}, date: "2019-11-27T12:42:07.000Z", value: "1000000", fee: "262000", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711435, hash: "five", id: "libcore:1:tezos:A:tezbox-five-OUT", recipients: ["other3"], senders: ["me"], type: "OUT", extra: {}, date: "2019-11-27T12:39:07.000Z", value: "949990", fee: "50010", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711435, hash: "five", id: "libcore:1:tezos:A:tezbox-five-REVEAL", recipients: [""], senders: ["me"], type: "REVEAL", extra: {}, date: "2019-11-27T12:39:07.000Z", value: "50010", fee: "50010", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: 711433, hash: "six", id: "libcore:1:tezos:A:tezbox-six-IN", recipients: ["me"], senders: ["other3"], type: "IN", extra: {}, date: "2019-11-27T12:37:07.000Z", value: "1000000", fee: "285160", }, ], pendingOperations: [ { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: null, hash: "one", id: "libcore:1:tezos:A:tezbox-one-OUT", recipients: ["other2"], senders: ["me"], type: "OUT", extra: {}, date: "2019-11-27T15:29:03.215Z", value: "222000", fee: "22000", }, { accountId: "libcore:1:tezos:A:tezbox", blockHash: null, blockHeight: null, hash: "seven", id: "libcore:1:tezos:A:tezbox-seven-OUT", recipients: ["other2"], senders: ["me"], type: "OUT", extra: {}, date: "2019-11-27T15:30:07.689Z", value: "234420", fee: "34420", }, ], currencyId: "tezos", lastSyncDate: "2019-11-27T15:29:51.673Z", balance: "278000", spendableBalance: "278000", xpub: "A", subAccounts: [], tezosResources: { revealed: true, counter: 0, }, } as TezosAccountRaw); }); test("pending operation are in order", () => { const byDay = groupAccountOperationsByDay(account, { count: 100, }); expect(byDay.completed).toBe(true); const dates = flatMap(byDay.sections, s => s.data.map(o => o.date)); const sortedByDates = dates.slice(0).sort((a, b) => b.valueOf() - a.valueOf()); expect(dates).toMatchObject(sortedByDates); expect(byDay.sections.map(s => s.data.map(o => o.id))).toMatchObject([ [ "libcore:1:tezos:A:tezbox-seven-OUT", "libcore:1:tezos:A:tezbox-one-OUT", "libcore:1:tezos:A:tezbox-one-REVEAL", "libcore:1:tezos:A:tezbox-two-IN", "libcore:1:tezos:A:tezbox-three-OUT", "libcore:1:tezos:A:tezbox-three-REVEAL", "libcore:1:tezos:A:tezbox-four-IN", "libcore:1:tezos:A:tezbox-five-OUT", "libcore:1:tezos:A:tezbox-five-REVEAL", "libcore:1:tezos:A:tezbox-six-IN", ], ]); });