Skip to content
This repository has been archived by the owner on Jan 4, 2022. It is now read-only.

Commit

Permalink
feat: remove data contract size validation
Browse files Browse the repository at this point in the history
  • Loading branch information
Konstantin Shuplenkov authored Mar 20, 2020
1 parent f856ecc commit ff7aa51
Show file tree
Hide file tree
Showing 3 changed files with 0 additions and 54 deletions.
13 changes: 0 additions & 13 deletions lib/dataContract/validateDataContractFactory.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,11 @@ const UndefinedIndexPropertyError = require('../errors/UndefinedIndexPropertyErr
const InvalidIndexPropertyTypeError = require('../errors/InvalidIndexPropertyTypeError');
const SystemPropertyIndexAlreadyPresentError = require('../errors/SystemPropertyIndexAlreadyPresentError');
const UniqueIndicesLimitReachedError = require('../errors/UniqueIndicesLimitReachedError');
const DataContractMaxByteSizeExceededError = require('../errors/DataContractMaxByteSizeExceededError');
const InvalidDataContractEntropyError = require('../errors/InvalidDataContractEntropyError');
const InvalidDataContractIdError = require('../errors/InvalidDataContractIdError');

const getPropertyDefinitionByPath = require('./getPropertyDefinitionByPath');

const { encode } = require('../util/serializer');
const entropy = require('../util/entropy');

const systemProperties = ['$id', '$ownerId'];
Expand Down Expand Up @@ -44,17 +42,6 @@ module.exports = function validateDataContractFactory(

const result = new ValidationResult();

// Validate Data Contract size
const serializedDataContract = encode(rawDataContract);
const serializedDataContractByteSize = Buffer.byteLength(serializedDataContract);

if (serializedDataContractByteSize > DataContractMaxByteSizeExceededError.MAX_SIZE) {
result.addError(
new DataContractMaxByteSizeExceededError(rawDataContract),
);
return result;
}

// Validate Data Contract schema
result.merge(
jsonSchemaValidator.validate(
Expand Down
25 changes: 0 additions & 25 deletions lib/errors/DataContractMaxByteSizeExceededError.js

This file was deleted.

16 changes: 0 additions & 16 deletions test/integration/dataContract/validateDataContractFactory.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@ const UndefinedIndexPropertyError = require('../../../lib/errors/UndefinedIndexP
const InvalidIndexPropertyTypeError = require('../../../lib/errors/InvalidIndexPropertyTypeError');
const SystemPropertyIndexAlreadyPresentError = require('../../../lib/errors/SystemPropertyIndexAlreadyPresentError');
const UniqueIndicesLimitReachedError = require('../../../lib/errors/UniqueIndicesLimitReachedError');
const DataContractMaxByteSizeExceededError = require('../../../lib/errors/DataContractMaxByteSizeExceededError');
const InvalidDataContractEntropyError = require('../../../lib/errors/InvalidDataContractEntropyError');
const InvalidDataContractIdError = require('../../../lib/errors/InvalidDataContractIdError');

Expand Down Expand Up @@ -1518,21 +1517,6 @@ describe('validateDataContractFactory', () => {
});
});

it('should return an invalid result if data contract byte size is bigger than 15 Kb', async () => {
const hugeDataContract = {};
for (let i = 0; i < 2200; i++) {
hugeDataContract[i] = i;
}

const result = await validateDataContract(hugeDataContract);

expectValidationError(result, DataContractMaxByteSizeExceededError);

const [error] = result.getErrors();

expect(error.getDataContract()).to.deep.equal(hugeDataContract);
});

it('should return invalid result with circular $ref pointer', async () => {
rawDataContract.definitions.object = { $ref: '#/definitions/object' };

Expand Down

0 comments on commit ff7aa51

Please sign in to comment.