diff options
author | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-06-09 20:30:42 +0800 |
---|---|---|
committer | Leonid Logvinov <logvinov.leon@gmail.com> | 2017-06-09 20:30:42 +0800 |
commit | 298c6a14b3aff0744989934aa86f1bf23a974a00 (patch) | |
tree | 14302c74499137c43b92a9f1eb86180f2a8edf8e | |
parent | ab40123768a3376bd2b36bd0d85a8e476b89dc10 (diff) | |
download | dexon-sol-tools-298c6a14b3aff0744989934aa86f1bf23a974a00.tar.gz dexon-sol-tools-298c6a14b3aff0744989934aa86f1bf23a974a00.tar.zst dexon-sol-tools-298c6a14b3aff0744989934aa86f1bf23a974a00.zip |
Add tests for address schema
-rw-r--r-- | test/schema_test.ts | 28 |
1 files changed, 21 insertions, 7 deletions
diff --git a/test/schema_test.ts b/test/schema_test.ts index d35ed4516..42a47c332 100644 --- a/test/schema_test.ts +++ b/test/schema_test.ts @@ -3,27 +3,41 @@ import * as _ from 'lodash'; import * as chai from 'chai'; import * as BigNumber from 'bignumber.js'; import promisify = require('es6-promisify'); -import {numberSchema} from '../src/schemas/basic_type_schemas'; +import {constants} from './utils/constants'; import {SchemaValidator} from '../src/utils/schema_validator'; +import {addressSchema, numberSchema} from '../src/schemas/basic_type_schemas'; chai.config.includeStack = true; const expect = chai.expect; describe('Schema', () => { const validator = new SchemaValidator(); + const batchTestSchema = (testCases: any[], schema: any, shouldFail = false) => { + _.forEach(testCases, (testCase: any) => { + expect(validator.validate(testCase, schema).errors).to.be.lengthOf(shouldFail ? 1 : 0); + }); + }; describe('#numberSchema', () => { describe('number regex', () => { it('should validate valid numbers', () => { const testCases = ['42', '0', '1.3', '0.2', '00.00']; - _.forEach(testCases, (testCase: string) => { - expect(validator.validate(testCase as any, numberSchema).errors).to.be.lengthOf(0); - }); + batchTestSchema(testCases, numberSchema); }); it('should fail for invalid numbers', () => { const testCases = ['.3', '1.', 'abacaba', 'и', '1..0']; - _.forEach(testCases, (testCase: string) => { - expect(validator.validate(testCase as any, numberSchema).errors).to.be.lengthOf(1); - }); + batchTestSchema(testCases, numberSchema, true); + }); + }); + }); + describe('#addressSchema', () => { + describe('address regex', () => { + it('should validate valid addresses', () => { + const testCases = ['0x8b0292B11a196601eD2ce54B665CaFEca0347D42', constants.NULL_ADDRESS]; + batchTestSchema(testCases, addressSchema); + }); + it('should fail for invalid addresses', () => { + const testCases = ['0x', '0', '0x00', '0xzzzzzzB11a196601eD2ce54B665CaFEca0347D42']; + batchTestSchema(testCases, addressSchema, true); }); }); }); |