12345678910111213141516171819202122232425262728 |
- const should = require('chai')
- .should();
- async function expectThrow (promise, message) {
- try {
- await promise;
- } catch (error) {
- // Message is an optional parameter here
- if (message) {
- error.message.should.include(message, 'Expected \'' + message + '\', got \'' + error + '\' instead');
- return;
- } else {
- // TODO: Check jump destination to destinguish between a throw
- // and an actual invalid jump.
- // TODO: When we contract A calls contract B, and B throws, instead
- // of an 'invalid jump', we get an 'out of gas' error. How do
- // we distinguish this from an actual out of gas event? (The
- // ganache log actually show an 'invalid jump' event.)
- error.message.should.match(/[invalid opcode|out of gas|revert]/, 'Expected throw, got \'' + error + '\' instead');
- return;
- }
- }
- should.fail('Expected throw not received');
- }
- module.exports = {
- expectThrow,
- };
|