|
1 |
| -import {use, expect} from 'chai'; |
2 |
| -import chaiAsPromised from 'chai-as-promised'; |
3 | 1 | import {MockProvider} from '@ethereum-waffle/provider';
|
4 |
| -import {waffleChai} from '@ethereum-waffle/chai'; |
5 |
| -import {ContractFactory} from 'ethers'; |
| 2 | +import {mockContractDirectTest} from './directTest'; |
6 | 3 |
|
7 |
| -import {deployMockContract} from '../src'; |
8 |
| -import Counter from './helpers/interfaces/Counter.json'; |
9 |
| - |
10 |
| -use(chaiAsPromised); |
11 |
| -use(waffleChai); |
12 |
| - |
13 |
| -describe('Mock Contract - Integration (called directly)', () => { |
14 |
| - const [wallet] = new MockProvider().getWallets(); |
15 |
| - |
16 |
| - it('throws readable error if mock was not set up for a method', async () => { |
17 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
18 |
| - |
19 |
| - await expect(mockCounter.read()).to.be.revertedWith('Mock on the method is not initialized'); |
20 |
| - }); |
21 |
| - |
22 |
| - it('mocking returned values', async () => { |
23 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
24 |
| - await mockCounter.mock.read.returns(45291); |
25 |
| - |
26 |
| - expect(await mockCounter.read()).to.equal(45291); |
27 |
| - }); |
28 |
| - |
29 |
| - it('mocking revert', async () => { |
30 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
31 |
| - await mockCounter.mock.read.reverts(); |
32 |
| - |
33 |
| - await expect(mockCounter.read()).to.be.revertedWith('Mock revert'); |
34 |
| - }); |
35 |
| - |
36 |
| - it('mock with call arguments', async () => { |
37 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
38 |
| - await mockCounter.mock.add.returns(1); |
39 |
| - await mockCounter.mock.add.withArgs(1).returns(2); |
40 |
| - await mockCounter.mock.add.withArgs(2).reverts(); |
41 |
| - |
42 |
| - expect(await mockCounter.add(0)).to.equal(1); |
43 |
| - expect(await mockCounter.add(1)).to.equal(2); |
44 |
| - await expect(mockCounter.add(2)).to.be.revertedWith('Mock revert'); |
45 |
| - expect(await mockCounter.add(3)).to.equal(1); |
46 |
| - }); |
47 |
| - |
48 |
| - it('should be able to call to another contract', async () => { |
49 |
| - const counterFactory = new ContractFactory(Counter.abi, Counter.bytecode, wallet); |
50 |
| - const counter = await counterFactory.deploy(); |
51 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
52 |
| - |
53 |
| - expect(await mockCounter.staticcall(counter, 'read()')).to.equal('0'); |
54 |
| - expect(await mockCounter.staticcall(counter, 'read')).to.equal('0'); |
55 |
| - }); |
56 |
| - |
57 |
| - it('should be able to call another contract with a parameter', async () => { |
58 |
| - const counterFactory = new ContractFactory(Counter.abi, Counter.bytecode, wallet); |
59 |
| - const counter = await counterFactory.deploy(); |
60 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
61 |
| - |
62 |
| - expect(await mockCounter.staticcall(counter, 'add', 1)).to.equal('1'); |
63 |
| - }); |
64 |
| - |
65 |
| - it('should be able to call another contract with many parameters', async () => { |
66 |
| - const counterFactory = new ContractFactory(Counter.abi, Counter.bytecode, wallet); |
67 |
| - const counter = await counterFactory.deploy(); |
68 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
69 |
| - |
70 |
| - expect(await mockCounter.staticcall(counter, 'addThree', 1, 2, 3)).to.equal('6'); |
71 |
| - }); |
72 |
| - |
73 |
| - it('should be able to execute another contract', async () => { |
74 |
| - const counterFactory = new ContractFactory(Counter.abi, Counter.bytecode, wallet); |
75 |
| - const counter = await counterFactory.deploy(); |
76 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
77 |
| - |
78 |
| - await mockCounter.call(counter, 'increment()'); |
79 |
| - expect(await counter.read()).to.equal('1'); |
80 |
| - |
81 |
| - await mockCounter.call(counter, 'increment'); |
82 |
| - expect(await counter.read()).to.equal('2'); |
83 |
| - }); |
84 |
| - |
85 |
| - it('should be able to execute another contract with a parameter', async () => { |
86 |
| - const counterFactory = new ContractFactory(Counter.abi, Counter.bytecode, wallet); |
87 |
| - const counter = await counterFactory.deploy(); |
88 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
89 |
| - |
90 |
| - await mockCounter.call(counter, 'increaseBy', 2); |
91 |
| - expect(await counter.read()).to.equal('2'); |
92 |
| - }); |
93 |
| - |
94 |
| - it('should be able to execute another contract with many parameters', async () => { |
95 |
| - const counterFactory = new ContractFactory(Counter.abi, Counter.bytecode, wallet); |
96 |
| - const counter = await counterFactory.deploy(); |
97 |
| - const mockCounter = await deployMockContract(wallet, Counter.abi); |
98 |
| - |
99 |
| - await mockCounter.call(counter, 'increaseByThreeValues', 1, 2, 3); |
100 |
| - expect(await counter.read()).to.equal('6'); |
101 |
| - }); |
102 |
| -}); |
| 4 | +mockContractDirectTest(new MockProvider()); |
0 commit comments