From 298c6a14b3aff0744989934aa86f1bf23a974a00 Mon Sep 17 00:00:00 2001 From: Leonid Logvinov Date: Fri, 9 Jun 2017 14:30:42 +0200 Subject: Add tests for address schema --- test/schema_test.ts | 28 +++++++++++++++++++++------- 1 file 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); }); }); }); -- cgit v1.2.3