Changeset View
Changeset View
Standalone View
Standalone View
cashtab/src/helpers/fixtures/vectors.js
// Copyright (c) 2024 The Bitcoin developers | // Copyright (c) 2024 The Bitcoin developers | ||||
// Distributed under the MIT software license, see the accompanying | // Distributed under the MIT software license, see the accompanying | ||||
// file COPYING or http://www.opensource.org/licenses/mit-license.php. | // file COPYING or http://www.opensource.org/licenses/mit-license.php. | ||||
import { mockCashtabCache } from 'helpers/fixtures/mocks'; | import { | ||||
mockCashtabCache, | |||||
emptyCashtabWalletJson, | |||||
emptyCashtabWalletMultiPathJson, | |||||
cashtabWalletMultiPathWithTokensJson, | |||||
} from 'helpers/fixtures/mocks'; | |||||
import CashtabCache, { | |||||
UNKNOWN_TOKEN_ID, | |||||
UNKNOWN_TOKEN_CACHED_INFO, | |||||
} from 'config/CashtabCache'; | |||||
import { | |||||
mockCacheWalletWithXecAndTokens, | |||||
mockCachedInfoCashtabDark, | |||||
walletWithXecAndTokens_pre_2_1_0, | |||||
walletWithXecAndTokens_pre_2_9_0, | |||||
validSavedWallets_pre_2_1_0, | |||||
validSavedWallets_pre_2_9_0, | |||||
} from 'components/fixtures/mocks'; | |||||
import appConfig from 'config/app'; | import appConfig from 'config/app'; | ||||
// Test vectors for helper functions | // Test vectors for helper functions | ||||
export default { | export default { | ||||
isMobile: { | isMobile: { | ||||
expectedReturns: [ | expectedReturns: [ | ||||
{ | { | ||||
description: 'Navigator is undefined', | description: 'Navigator is undefined', | ||||
▲ Show 20 Lines • Show All 42 Lines • ▼ Show 20 Lines | export default { | ||||
cashtabCacheToJSON: { | cashtabCacheToJSON: { | ||||
expectedReturns: [ | expectedReturns: [ | ||||
{ | { | ||||
description: | description: | ||||
'Converts cashtabCache with populated token cache to JSON for storage', | 'Converts cashtabCache with populated token cache to JSON for storage', | ||||
cashtabCache: mockCashtabCache, | cashtabCache: mockCashtabCache, | ||||
cashtabCacheJson: { | cashtabCacheJson: { | ||||
tokens: [ | tokens: [ | ||||
[UNKNOWN_TOKEN_ID, UNKNOWN_TOKEN_CACHED_INFO], | |||||
[ | [ | ||||
'3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109', | '3fee3384150b030490b7bee095a63900f66a45f2d8e3002ae2cf17ce3ef4d109', | ||||
{ | mockCacheWalletWithXecAndTokens, | ||||
decimals: 0, | |||||
hash: '', | |||||
tokenName: 'BearNip', | |||||
tokenTicker: 'BEAR', | |||||
url: 'https://cashtab.com/', | |||||
}, | |||||
], | ], | ||||
[ | [ | ||||
'b8f2a9e767a0be7b80c7e414ef2534586d4da72efddb39a4e70e501ab73375cc', | 'b8f2a9e767a0be7b80c7e414ef2534586d4da72efddb39a4e70e501ab73375cc', | ||||
mockCachedInfoCashtabDark, | |||||
], | |||||
], | |||||
}, | |||||
}, | |||||
{ | |||||
description: | |||||
'Converts cashtabCache with empty token cache to JSON for storage', | |||||
cashtabCache: new CashtabCache(), | |||||
cashtabCacheJson: { | |||||
tokens: [[UNKNOWN_TOKEN_ID, UNKNOWN_TOKEN_CACHED_INFO]], | |||||
}, | |||||
}, | |||||
], | |||||
}, | |||||
cashtabWalletToJSON: { | |||||
expectedReturns: [ | |||||
{ | |||||
description: 'Newly created Cashtab wallet', | |||||
cashtabWallet: { | |||||
...emptyCashtabWalletJson, | |||||
paths: new Map(emptyCashtabWalletJson.paths), | |||||
state: { | |||||
...emptyCashtabWalletJson.state, | |||||
tokens: new Map(emptyCashtabWalletJson.state.tokens), | |||||
}, | |||||
}, | |||||
cashtabWalletJSON: emptyCashtabWalletJson, | |||||
}, | |||||
{ | |||||
description: 'Pre-2.1.0 wallet is unchanged', | |||||
cashtabWallet: walletWithXecAndTokens_pre_2_1_0, | |||||
cashtabWalletJSON: walletWithXecAndTokens_pre_2_1_0, | |||||
}, | |||||
{ | |||||
description: 'Pre-2.9.0 wallet is unchanged', | |||||
cashtabWallet: walletWithXecAndTokens_pre_2_9_0, | |||||
cashtabWalletJSON: walletWithXecAndTokens_pre_2_9_0, | |||||
}, | |||||
{ | |||||
description: 'Cashtab wallet with multiple paths', | |||||
cashtabWallet: { | |||||
...emptyCashtabWalletMultiPathJson, | |||||
paths: new Map(emptyCashtabWalletMultiPathJson.paths), | |||||
state: { | |||||
...emptyCashtabWalletMultiPathJson.state, | |||||
tokens: new Map( | |||||
emptyCashtabWalletMultiPathJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | |||||
cashtabWalletJSON: emptyCashtabWalletMultiPathJson, | |||||
}, | |||||
{ | |||||
description: | |||||
'Cashtab wallet with multiple paths and tokens in state', | |||||
cashtabWallet: { | |||||
...cashtabWalletMultiPathWithTokensJson, | |||||
paths: new Map(cashtabWalletMultiPathWithTokensJson.paths), | |||||
state: { | |||||
...cashtabWalletMultiPathWithTokensJson.state, | |||||
tokens: new Map( | |||||
cashtabWalletMultiPathWithTokensJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | |||||
cashtabWalletJSON: cashtabWalletMultiPathWithTokensJson, | |||||
}, | |||||
], | |||||
}, | |||||
cashtabWalletsToJSON: { | |||||
expectedReturns: [ | |||||
{ | |||||
description: 'Newly created Cashtab wallets', | |||||
cashtabWallets: [ | |||||
{ | |||||
...emptyCashtabWalletJson, | |||||
paths: new Map(emptyCashtabWalletJson.paths), | |||||
state: { | |||||
...emptyCashtabWalletJson.state, | |||||
tokens: new Map( | |||||
emptyCashtabWalletJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | |||||
{ | { | ||||
decimals: 0, | ...emptyCashtabWalletJson, | ||||
hash: '', | paths: new Map(emptyCashtabWalletJson.paths), | ||||
tokenName: 'Cashtab Dark', | state: { | ||||
tokenTicker: 'CTD', | ...emptyCashtabWalletJson.state, | ||||
url: 'https://cashtab.com/', | tokens: new Map( | ||||
emptyCashtabWalletJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | }, | ||||
], | ], | ||||
cashtabWalletsJSON: [ | |||||
emptyCashtabWalletJson, | |||||
emptyCashtabWalletJson, | |||||
], | ], | ||||
}, | }, | ||||
{ | |||||
description: 'Pre-2.1.0 wallets are unchanged', | |||||
cashtabWallets: validSavedWallets_pre_2_1_0, | |||||
cashtabWalletsJSON: validSavedWallets_pre_2_1_0, | |||||
}, | |||||
{ | |||||
description: 'Pre-2.9.0 wallets are unchanged', | |||||
cashtabWallets: validSavedWallets_pre_2_9_0, | |||||
cashtabWalletsJSON: validSavedWallets_pre_2_9_0, | |||||
}, | |||||
{ | |||||
description: 'Cashtab wallets with multiple paths', | |||||
cashtabWallets: [ | |||||
{ | |||||
...emptyCashtabWalletMultiPathJson, | |||||
paths: new Map(emptyCashtabWalletMultiPathJson.paths), | |||||
state: { | |||||
...emptyCashtabWalletMultiPathJson.state, | |||||
tokens: new Map( | |||||
emptyCashtabWalletMultiPathJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | |||||
{ | |||||
...emptyCashtabWalletMultiPathJson, | |||||
paths: new Map(emptyCashtabWalletMultiPathJson.paths), | |||||
state: { | |||||
...emptyCashtabWalletMultiPathJson.state, | |||||
tokens: new Map( | |||||
emptyCashtabWalletMultiPathJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | |||||
], | |||||
cashtabWalletsJSON: [ | |||||
emptyCashtabWalletMultiPathJson, | |||||
emptyCashtabWalletMultiPathJson, | |||||
], | |||||
}, | }, | ||||
{ | { | ||||
description: | description: | ||||
'Converts cashtabCache with empty token cache to JSON for storage', | 'Cashtab wallets with multiple paths and tokens in state', | ||||
cashtabCache: { tokens: new Map() }, | cashtabWallets: [ | ||||
cashtabCacheJson: { tokens: [] }, | { | ||||
...cashtabWalletMultiPathWithTokensJson, | |||||
paths: new Map( | |||||
cashtabWalletMultiPathWithTokensJson.paths, | |||||
), | |||||
state: { | |||||
...cashtabWalletMultiPathWithTokensJson.state, | |||||
tokens: new Map( | |||||
cashtabWalletMultiPathWithTokensJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | |||||
{ | |||||
...cashtabWalletMultiPathWithTokensJson, | |||||
paths: new Map( | |||||
cashtabWalletMultiPathWithTokensJson.paths, | |||||
), | |||||
state: { | |||||
...cashtabWalletMultiPathWithTokensJson.state, | |||||
tokens: new Map( | |||||
cashtabWalletMultiPathWithTokensJson.state.tokens, | |||||
), | |||||
}, | |||||
}, | |||||
], | |||||
cashtabWalletsJSON: [ | |||||
cashtabWalletMultiPathWithTokensJson, | |||||
cashtabWalletMultiPathWithTokensJson, | |||||
], | |||||
}, | }, | ||||
], | ], | ||||
}, | }, | ||||
}; | }; |