aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeonid Logvinov <logvinov.leon@gmail.com>2017-06-09 20:57:13 +0800
committerLeonid Logvinov <logvinov.leon@gmail.com>2017-06-09 20:57:13 +0800
commit44f8d189624281b3f97926aa821faf99ad314ae5 (patch)
tree1e3a2aae90c7f48add38765f2d64ddd5d1b972c3
parentd2df9bb314a1227640112791c6c29c9dd2c77301 (diff)
downloaddexon-sol-tools-44f8d189624281b3f97926aa821faf99ad314ae5.tar
dexon-sol-tools-44f8d189624281b3f97926aa821faf99ad314ae5.tar.gz
dexon-sol-tools-44f8d189624281b3f97926aa821faf99ad314ae5.tar.bz2
dexon-sol-tools-44f8d189624281b3f97926aa821faf99ad314ae5.tar.lz
dexon-sol-tools-44f8d189624281b3f97926aa821faf99ad314ae5.tar.xz
dexon-sol-tools-44f8d189624281b3f97926aa821faf99ad314ae5.tar.zst
dexon-sol-tools-44f8d189624281b3f97926aa821faf99ad314ae5.zip
Add ecSignatureSchema tests
-rw-r--r--src/schemas/ec_signature_schema.ts2
-rw-r--r--test/schema_test.ts94
2 files changed, 59 insertions, 37 deletions
diff --git a/src/schemas/ec_signature_schema.ts b/src/schemas/ec_signature_schema.ts
index e39a8bd70..df1121989 100644
--- a/src/schemas/ec_signature_schema.ts
+++ b/src/schemas/ec_signature_schema.ts
@@ -1,4 +1,4 @@
-export const ecSignatureParameter = {
+export const ecSignatureParameterSchema = {
id: '/ecSignatureParameter',
type: 'string',
pattern: '^0[xX][0-9A-Fa-f]{64}$',
diff --git a/test/schema_test.ts b/test/schema_test.ts
index 657cd1aad..1a4275ebb 100644
--- a/test/schema_test.ts
+++ b/test/schema_test.ts
@@ -6,7 +6,7 @@ import promisify = require('es6-promisify');
import {constants} from './utils/constants';
import {SchemaValidator} from '../src/utils/schema_validator';
import {addressSchema, numberSchema} from '../src/schemas/basic_type_schemas';
-import {ecSignatureParameter} from '../src/schemas/ec_signature_schema';
+import {ecSignatureParameterSchema, ecSignatureSchema} from '../src/schemas/ec_signature_schema';
chai.config.includeStack = true;
const expect = chai.expect;
@@ -19,47 +19,69 @@ describe('Schema', () => {
});
};
describe('#numberSchema', () => {
- describe('number regex', () => {
- it('should validate valid numbers', () => {
- const testCases = ['42', '0', '1.3', '0.2', '00.00'];
- batchTestSchema(testCases, numberSchema);
- });
- it('should fail for invalid numbers', () => {
- const testCases = ['.3', '1.', 'abacaba', 'и', '1..0'];
- batchTestSchema(testCases, numberSchema, true);
- });
+ it('should validate valid numbers', () => {
+ const testCases = ['42', '0', '1.3', '0.2', '00.00'];
+ batchTestSchema(testCases, numberSchema);
+ });
+ it('should fail for invalid numbers', () => {
+ const testCases = ['.3', '1.', 'abacaba', 'и', '1..0'];
+ 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);
- });
+ 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);
});
});
describe('#ecSignatureParameter', () => {
- describe('parameter regex', () => {
- it('should validate valid parameters', () => {
- const testCases = [
- '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc33',
- '0X40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254',
- ];
- batchTestSchema(testCases, ecSignatureParameter);
- });
- it('should fail for invalid parameters', () => {
- const testCases = [
- '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc3', // shorter
- '0xzzzz9190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254', // invalid characters
- '40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254', // no 0x
- ];
- batchTestSchema(testCases, ecSignatureParameter, true);
- });
- });
+ it('should validate valid parameters', () => {
+ const testCases = [
+ '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc33',
+ '0X40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254',
+ ];
+ batchTestSchema(testCases, ecSignatureParameterSchema);
+ });
+ it('should fail for invalid parameters', () => {
+ const testCases = [
+ '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc3', // shorter
+ '0xzzzz9190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254', // invalid characters
+ '40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254', // no 0x
+ ];
+ batchTestSchema(testCases, ecSignatureParameterSchema, true);
+ });
+ });
+ describe('#ecSignature', () => {
+ it('should validate valid signature', () => {
+ const signature = {
+ v: 27,
+ r: '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc33',
+ s: '0x40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254',
+ };
+ const testCases = [
+ signature,
+ {
+ ...signature,
+ v: 28,
+ },
+ ];
+ batchTestSchema(testCases, ecSignatureSchema);
+ });
+ it('should fail for invalid signature', () => {
+ const v = 27;
+ const r = '0x61a3ed31b43c8780e905a260a35faefcc527be7516aa11c0256729b5b351bc33';
+ const s = '0x40349190569279751135161d22529dc25add4f6069af05be04cacbda2ace2254';
+ const testCases = [
+ {},
+ {v},
+ {r, s, v: 31},
+ ];
+ batchTestSchema(testCases, ecSignatureSchema, true);
+ });
});
describe('BigNumber serialization', () => {
it('should correctly serialize BigNumbers', () => {