UNPKG

3.75 kBJavaScriptView Raw
1/* global ORE_NETWORK_URI:true */
2/* global ORE_OWNER_ACCOUNT_KEY:true */
3/* global ORE_PAYER_ACCOUNT_NAME:true */
4
5const { Orejs } = require('../../src');
6const { mockAccount, mockAbi, mockBlock, mockCode, mockError, mockInfo, mockTransaction } = require('./fetch');
7
8function constructOrejs(config) {
9 const orejs = new Orejs({
10 httpEndpoint: ORE_NETWORK_URI,
11 keyProvider: [ORE_OWNER_ACCOUNT_KEY],
12 ...config,
13 });
14
15 return orejs;
16}
17
18function mockGetAbi(_orejs = undefined) {
19 const mockupAbi = jest.fn();
20
21 const getAbi = { code: mockCode(), abi: JSON.parse(mockAbi()) };
22
23 mockupAbi.mockImplementationOnce(() => Promise.resolve(getAbi));
24 const orejs = _orejs || constructOrejs();
25 orejs.eos.rpc.get_raw_code_and_abi = mockupAbi;
26
27 return getAbi;
28}
29
30function mockGetAccount(_orejs = undefined, withInitialCheck = true, _account = {}) {
31 const mockupAccount = jest.fn();
32
33 const getAccount = JSON.parse(mockAccount(_account)[0])[0];
34
35 if (withInitialCheck) {
36 mockupAccount.mockImplementationOnce(() => Promise.reject(false));
37 }
38 mockupAccount.mockImplementationOnce(() => Promise.resolve(getAccount));
39 const orejs = _orejs || constructOrejs();
40 orejs.eos.rpc.get_account = mockupAccount;
41
42 return getAccount;
43}
44
45function mockGetAccountWithAlreadyExistingAccount(_orejs = undefined, _account = {}) {
46 const mockupAccount = jest.fn();
47
48 const getAccount = JSON.parse(mockAccount(_account)[0])[0];
49
50 mockupAccount.mockImplementationOnce(() => Promise.resolve(getAccount));
51 mockupAccount.mockImplementationOnce(() => Promise.reject(false));
52 mockupAccount.mockImplementationOnce(() => Promise.resolve(getAccount));
53 const orejs = _orejs || constructOrejs();
54 orejs.eos.rpc.get_account = mockupAccount;
55
56 return getAccount;
57}
58
59function mockGetBlock(_orejs = undefined, _block = {}) {
60 const mockupBlock = jest.fn();
61
62 const getBlock = JSON.parse(mockBlock(_block)[0])[0];
63
64 mockupBlock.mockImplementation(() => Promise.resolve(getBlock));
65 const orejs = _orejs || constructOrejs();
66 orejs.eos.rpc.get_block = mockupBlock;
67
68 return getBlock;
69}
70
71function mockGetBlockError(_orejs = undefined) {
72 const mockupBlock = jest.fn();
73
74 const getBlock = mockError();
75
76 mockupBlock.mockImplementationOnce(() => {
77 throw getBlock;
78 });
79 const orejs = _orejs || constructOrejs();
80 orejs.eos.rpc.get_block = mockupBlock;
81
82 return getBlock;
83}
84
85function mockGetCurrency(_orejs = undefined, _currency = '1.0000 CPU') {
86 const mockupCurrency = jest.fn();
87
88 const getCurrency = _currency;
89
90 mockupCurrency.mockImplementationOnce(() => Promise.resolve(getCurrency));
91 const orejs = _orejs || constructOrejs();
92 orejs.eos.rpc.get_currency_balance = mockupCurrency;
93
94 return getCurrency;
95}
96
97function mockGetInfo(_orejs = undefined, _info = {}) {
98 const mockupInfo = jest.fn();
99
100 const getInfo = JSON.parse(mockInfo(_info)[0])[0];
101
102 mockupInfo.mockImplementationOnce(() => Promise.resolve(getInfo));
103 const orejs = _orejs || constructOrejs();
104 orejs.eos.rpc.get_info = mockupInfo;
105
106 return getInfo;
107}
108
109function mockGetTransaction(_orejs = undefined, success = true, _transaction = {}) {
110 const mockupTransaction = jest.fn();
111
112 const getTransaction = mockTransaction(_transaction);
113
114 if(success) {
115 mockupTransaction.mockImplementationOnce(() => Promise.resolve(getTransaction));
116 } else {
117 mockupTransaction.mockImplementationOnce(() => Promise.reject(getTransaction));
118 }
119 const orejs = _orejs || constructOrejs();
120 orejs.eos.transact = mockupTransaction;
121
122 return getTransaction;
123}
124
125module.exports = {
126 constructOrejs,
127 mockGetAbi,
128 mockGetAccount,
129 mockGetAccountWithAlreadyExistingAccount,
130 mockGetBlock,
131 mockGetBlockError,
132 mockGetCurrency,
133 mockGetInfo,
134 mockGetTransaction,
135};