@ledgerhq/live-common
Version:
Common ground for the Ledger Live apps
43 lines (36 loc) • 1.47 kB
text/typescript
import "../test-helpers/staticTime";
import { genAccount } from "../../mock/account";
import { getBalanceHistory } from "@ledgerhq/live-countervalues/portfolio";
import { getEnv, setEnv } from "@ledgerhq/live-env";
import { setSupportedCurrencies } from "../../currencies";
setSupportedCurrencies(["ethereum", "ethereum_classic", "ripple"]);
test("generate an account from seed", () => {
const a = genAccount("seed");
const b = genAccount("seed");
expect(a).toEqual(b);
});
test("generate an account from different seed should generate a different account", () => {
const a = genAccount(getEnv("MOCK"));
setEnv("MOCK", "çacestvraiça");
const b = genAccount(getEnv("MOCK"));
expect(a).not.toEqual(b);
});
test("dont generate negative balance", () => {
const a = genAccount("n"); // <= with just prando, this seed generates negative balance
expect(a.balance.isNegative()).toBe(false);
});
test("allow specifying number of operations", () => {
const a = genAccount("n", {
operationsSize: 10,
});
expect(a.operations.length).toBe(10);
});
// NB we can't guarantee that. bug in implementation because JS Numbers
test("mock generators don't generate negative balances", () => {
for (let i = 0; i < 100; i++) {
const account = genAccount("negative?" + i);
const history = getBalanceHistory(account, "year", 300);
const invalidDataPoints = history.filter(h => h.value < 0);
expect(invalidDataPoints).toMatchObject([]);
}
});