diff options
Diffstat (limited to 'packages/0x.js/test/assert_test.ts')
-rw-r--r-- | packages/0x.js/test/assert_test.ts | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/packages/0x.js/test/assert_test.ts b/packages/0x.js/test/assert_test.ts new file mode 100644 index 000000000..bfca95d9c --- /dev/null +++ b/packages/0x.js/test/assert_test.ts @@ -0,0 +1,34 @@ +import * as chai from 'chai'; +import 'mocha'; +import {ZeroEx} from '../src'; +import {assert} from '../src/utils/assert'; +import {web3Factory} from './utils/web3_factory'; + +const expect = chai.expect; + +describe('Assertion library', () => { + const web3 = web3Factory.create(); + const zeroEx = new ZeroEx(web3.currentProvider); + describe('#isSenderAddressHexAsync', () => { + it('throws when address is invalid', async () => { + const address = '0xdeadbeef'; + const varName = 'address'; + return expect(assert.isSenderAddressAsync(varName, address, (zeroEx as any)._web3Wrapper)) + .to.be.rejectedWith(`Expected ${varName} to be of type ETHAddressHex, encountered: ${address}`); + }); + it('throws when address is unavailable', async () => { + const validUnrelatedAddress = '0x8b0292b11a196601eddce54b665cafeca0347d42'; + const varName = 'address'; + return expect(assert.isSenderAddressAsync(varName, validUnrelatedAddress, (zeroEx as any)._web3Wrapper)) + .to.be.rejectedWith( + `Specified ${varName} ${validUnrelatedAddress} isn't available through the supplied web3 provider`, + ); + }); + it('doesn\'t throw if address is available', async () => { + const availableAddress = (await zeroEx.getAvailableAddressesAsync())[0]; + const varName = 'address'; + return expect(assert.isSenderAddressAsync(varName, availableAddress, (zeroEx as any)._web3Wrapper)) + .to.become(undefined); + }); + }); +}); |