2016-07-01 18:33:42 +03:00
|
|
|
'use strict';
|
|
|
|
import { SchemaHelper } from './schema-helper.service';
|
2016-10-23 20:18:42 +03:00
|
|
|
import { SpecManager } from '../utils/spec-manager';
|
2016-07-01 18:33:42 +03:00
|
|
|
|
|
|
|
describe('Spec Helper', () => {
|
2016-07-26 14:07:25 +03:00
|
|
|
describe('injectors', () => {
|
|
|
|
it('should autodetect type if not-specified', () => {
|
|
|
|
spyOn(console, 'warn').and.stub();
|
|
|
|
let schema = {
|
|
|
|
type: undefined,
|
|
|
|
properties: {}
|
|
|
|
};
|
|
|
|
|
|
|
|
SchemaHelper.runInjectors(schema, schema, '#/');
|
|
|
|
schema.type.should.be.equal('object');
|
|
|
|
expect(console.warn).toHaveBeenCalled();
|
|
|
|
(<jasmine.Spy>console.warn).and.callThrough();
|
|
|
|
});
|
2017-02-26 00:59:20 +03:00
|
|
|
|
|
|
|
describe('string', () => {
|
|
|
|
it('should calculate range for string with maxLength', () => {
|
|
|
|
let schema:any = {
|
|
|
|
type: 'string',
|
|
|
|
maxLength: 3
|
|
|
|
};
|
|
|
|
|
|
|
|
SchemaHelper.runInjectors(schema, schema, '#/');
|
|
|
|
schema._range.should.be.equal('<= 3 characters');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should calculate range for string with minLength', () => {
|
|
|
|
let schema:any = {
|
|
|
|
type: 'string',
|
|
|
|
minLength: 3,
|
|
|
|
};
|
|
|
|
|
|
|
|
SchemaHelper.runInjectors(schema, schema, '#/');
|
|
|
|
schema._range.should.be.equal('>= 3 characters');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should calculate range for string with both max and minLength', () => {
|
|
|
|
let schema:any = {
|
|
|
|
type: 'string',
|
|
|
|
minLength: 3,
|
|
|
|
maxLength: 5
|
|
|
|
};
|
|
|
|
|
|
|
|
SchemaHelper.runInjectors(schema, schema, '#/');
|
|
|
|
schema._range.should.be.equal('[ 3 .. 5 ] characters');
|
|
|
|
});
|
|
|
|
|
|
|
|
it('should calculate range for string with equal max and minLength', () => {
|
|
|
|
let schema:any = {
|
|
|
|
type: 'string',
|
|
|
|
minLength: 5,
|
|
|
|
maxLength: 5
|
|
|
|
};
|
|
|
|
|
|
|
|
SchemaHelper.runInjectors(schema, schema, '#/');
|
|
|
|
schema._range.should.be.equal('5 characters');
|
|
|
|
});
|
|
|
|
});
|
2016-07-26 14:07:25 +03:00
|
|
|
});
|
2017-02-09 16:24:35 +03:00
|
|
|
|
|
|
|
describe('preprocessProperties', () => {
|
|
|
|
it('should not throw when type array and items are not defined', () => {
|
|
|
|
let schema = {
|
|
|
|
type: 'object',
|
|
|
|
properties: {
|
|
|
|
prop1: {
|
|
|
|
type: 'array'
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
(() => SchemaHelper.preprocessProperties(schema, '#/', {})).should.not.throw();
|
|
|
|
});
|
|
|
|
});
|
2016-07-01 18:33:42 +03:00
|
|
|
});
|