1 |
|
2 |
|
3 |
|
4 |
|
5 | const { Orejs } = require('../../src');
|
6 | const { mockAccount, mockAbi, mockBlock, mockCode, mockError, mockInfo, mockTransaction } = require('./fetch');
|
7 |
|
8 | function 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 |
|
18 | function 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 |
|
30 | function 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 |
|
45 | function 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 |
|
59 | function 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 |
|
71 | function 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 |
|
85 | function 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 |
|
97 | function 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 |
|
109 | function 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 |
|
125 | module.exports = {
|
126 | constructOrejs,
|
127 | mockGetAbi,
|
128 | mockGetAccount,
|
129 | mockGetAccountWithAlreadyExistingAccount,
|
130 | mockGetBlock,
|
131 | mockGetBlockError,
|
132 | mockGetCurrency,
|
133 | mockGetInfo,
|
134 | mockGetTransaction,
|
135 | };
|