123456789101112131415161718192021222324252627282930313233343536 |
- const { ether, expectRevert } = require('@openzeppelin/test-helpers');
- const { shouldBehaveLikeEscrow } = require('./Escrow.behavior');
- const ConditionalEscrowMock = artifacts.require('ConditionalEscrowMock');
- contract('ConditionalEscrow', function (accounts) {
- const [ owner, payee, ...otherAccounts ] = accounts;
- beforeEach(async function () {
- this.escrow = await ConditionalEscrowMock.new({ from: owner });
- });
- context('when withdrawal is allowed', function () {
- beforeEach(async function () {
- await Promise.all(otherAccounts.map(payee => this.escrow.setAllowed(payee, true)));
- });
- shouldBehaveLikeEscrow(owner, otherAccounts);
- });
- context('when withdrawal is disallowed', function () {
- const amount = ether('23');
- beforeEach(async function () {
- await this.escrow.setAllowed(payee, false);
- });
- it('reverts on withdrawals', async function () {
- await this.escrow.deposit(payee, { from: owner, value: amount });
- await expectRevert(this.escrow.withdraw(payee, { from: owner }),
- 'ConditionalEscrow: payee is not allowed to withdraw',
- );
- });
- });
- });
|