UNPKG

copay-crown

Version:

A Secure Crown Wallet

172 lines (163 loc) 4.59 kB
import { HttpClient, HttpClientModule } from '@angular/common/http'; import { async, inject, TestBed } from '@angular/core/testing'; import { TranslateFakeLoader, TranslateLoader, TranslateModule, TranslateService } from '@ngx-translate/core'; import { Level, NgLoggerModule } from '@nsalaun/ng-logger'; import { AlertController, App, Config, Events, LoadingController, Platform } from 'ionic-angular'; import * as _ from 'lodash'; import { AppProvider } from '../../providers/app/app'; import { LanguageProvider } from '../../providers/language/language'; import { Logger } from '../../providers/logger/logger'; import { TxFormatProvider } from '../../providers/tx-format/tx-format'; import { BwcErrorProvider } from '../bwc-error/bwc-error'; import { BwcProvider } from '../bwc/bwc'; import { ConfigProvider } from '../config/config'; import { OnGoingProcessProvider } from '../on-going-process/on-going-process'; import { PersistenceProvider } from '../persistence/persistence'; import { PlatformProvider } from '../platform/platform'; import { PopupProvider } from '../popup/popup'; import { WalletProvider } from '../wallet/wallet'; import { ProfileProvider } from './profile'; describe('Profile Provider', () => { let profileProvider: ProfileProvider; const walletFixture = { api1: { id: 'eabee25b-d6ab-4b11-8b76-88570d826914', cachedBalance: '10.00 BTC', cachedBalanceUpdatedOn: null, credentials: { coin: 'btc', network: 'livenet', n: 1, m: 1 }, status: { availableBalanceSat: 1000000000 // 10 BTC }, isComplete: () => { return true; } }, api2: { id: 'zxccv25b-d6ab-4b11-8b76-88570d822222', cachedBalance: '5.00 BCH', cachedBalanceUpdatedOn: null, credentials: { coin: 'bch', network: 'livenet', n: 1, m: 1 }, status: { availableBalanceSat: 500000000 // 5 BCH }, isComplete: () => { return true; } }, api3: { id: 'qwert25b-d6ab-4b11-8b76-88570d833333', cachedBalance: '1.50 BTC', cachedBalanceUpdatedOn: null, credentials: { coin: 'btc', network: 'testnet', n: 2, m: 2 }, status: { availableBalanceSat: 150000000 // 1.50 BTC }, isComplete: () => { return true; } } }; class BwcProviderMock { constructor() {} getErrors() { return 'error'; } } class PersistenceProviderMock { constructor() {} getBalanceCache(walletId: any) { return Promise.resolve('0.00 BTC'); } } beforeEach(() => { TestBed.configureTestingModule({ imports: [ HttpClientModule, NgLoggerModule.forRoot(Level.LOG), TranslateModule.forRoot({ loader: { provide: TranslateLoader, useClass: TranslateFakeLoader } }) ], providers: [ AlertController, App, Config, ProfileProvider, AppProvider, { provide: BwcProvider, useClass: BwcProviderMock }, BwcErrorProvider, ConfigProvider, HttpClient, LanguageProvider, LoadingController, Logger, OnGoingProcessProvider, { provide: PersistenceProvider, useClass: PersistenceProviderMock }, Platform, PlatformProvider, PopupProvider, TranslateService, TxFormatProvider, WalletProvider, Events ] }); profileProvider = TestBed.get(ProfileProvider); profileProvider.wallet = walletFixture; }); describe('getWallets()', () => { it('should get successfully all wallets when no opts', () => { const wallets = profileProvider.getWallets(); expect(wallets).toEqual(_.values(profileProvider.wallet)); }); it('should get successfully all wallets when opts are provided', () => { const opts = { coin: 'btc', network: 'testnet', n: 2, m: 2, hasFunds: true, minAmount: 0, onlyComplete: true }; const wallets = profileProvider.getWallets(opts); expect(wallets).toEqual([profileProvider.wallet.api3]); }); it('should not return any wallet when there is no wallets validating provided opts', () => { const opts = { coin: 'bch', network: 'livenet', minAmount: 1000000000 }; const wallets = profileProvider.getWallets(opts); expect(wallets).toEqual([]); }); }); });