mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #7026 from Gamboster/feat/testProfileProvider
Unit test: profile provider getWallets function
This commit is contained in:
commit
bfb763fbdd
|
@ -0,0 +1,140 @@
|
||||||
|
import { TestBed, inject, async } from '@angular/core/testing';
|
||||||
|
import { Http } from '@angular/http';
|
||||||
|
import { Logger } from '@nsalaun/ng-logger';
|
||||||
|
import { WalletProvider } from '../wallet/wallet';
|
||||||
|
import { ProfileProvider } from './profile';
|
||||||
|
import { PersistenceProvider } from '../persistence/persistence';
|
||||||
|
import { ConfigProvider } from '../config/config';
|
||||||
|
import { BwcProvider } from '../bwc/bwc';
|
||||||
|
import { BwcErrorProvider } from '../bwc-error/bwc-error';
|
||||||
|
import { PlatformProvider } from '../platform/platform';
|
||||||
|
import { AppProvider } from '../../providers/app/app';
|
||||||
|
import { LanguageProvider } from '../../providers/language/language';
|
||||||
|
import { TxFormatProvider } from '../../providers/tx-format/tx-format';
|
||||||
|
import * as _ from 'lodash';
|
||||||
|
|
||||||
|
describe('Profile Provider', () => {
|
||||||
|
let profileProvider: ProfileProvider;
|
||||||
|
|
||||||
|
class BwcProviderMock {
|
||||||
|
constructor() {
|
||||||
|
};
|
||||||
|
getErrors() {
|
||||||
|
return "error";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class PersistenceProviderMock {
|
||||||
|
constructor() {
|
||||||
|
};
|
||||||
|
getBalanceCache(walletId: any) {
|
||||||
|
return Promise.resolve('0.00 BTC');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
providers: [
|
||||||
|
ProfileProvider,
|
||||||
|
{ provide: Http },
|
||||||
|
{ provide: Logger },
|
||||||
|
{ provide: WalletProvider },
|
||||||
|
{ provide: PersistenceProvider, useClass: PersistenceProviderMock },
|
||||||
|
{ provide: ConfigProvider },
|
||||||
|
{ provide: BwcProvider, useClass: BwcProviderMock },
|
||||||
|
{ provide: BwcErrorProvider },
|
||||||
|
{ provide: PlatformProvider },
|
||||||
|
{ provide: LanguageProvider },
|
||||||
|
{ provide: TxFormatProvider },
|
||||||
|
{ provide: AppProvider },
|
||||||
|
]
|
||||||
|
});
|
||||||
|
profileProvider = TestBed.get(ProfileProvider);
|
||||||
|
profileProvider.wallet = {
|
||||||
|
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: function () {
|
||||||
|
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: function () {
|
||||||
|
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: function () {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
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([]);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
Loading…
Reference in New Issue