Skip to content

Commit e921b4b

Browse files
committed
Validation test
- added tests for serialization validation - factored validation Signed-off-by: JBBianchi <[email protected]>
1 parent 89bea05 commit e921b4b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+143
-467
lines changed

src/lib/builders/action-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -27,14 +26,7 @@ import { validators } from '../validators';
2726
*/
2827
function actionBuildingFn(data: Specification.Action): () => Specification.Action {
2928
return () => {
30-
const validate = validators.get('Action');
31-
// TODO: ignore validation if no validator or throw ?
32-
if (!validate) return data;
33-
if (!validate(data)) {
34-
console.warn(validate.errors);
35-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
36-
throw new Error(`Action is invalid: ${firstError.message}`);
37-
}
29+
validate('Action', data);
3830
return data;
3931
};
4032
}

src/lib/builders/actiondatafilter-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -27,14 +26,7 @@ import { validators } from '../validators';
2726
*/
2827
function actiondatafilterBuildingFn(data: Specification.Actiondatafilter): () => Specification.Actiondatafilter {
2928
return () => {
30-
const validate = validators.get('Actiondatafilter');
31-
// TODO: ignore validation if no validator or throw ?
32-
if (!validate) return data;
33-
if (!validate(data)) {
34-
console.warn(validate.errors);
35-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
36-
throw new Error(`Actiondatafilter is invalid: ${firstError.message}`);
37-
}
29+
validate('Actiondatafilter', data);
3830
return data;
3931
};
4032
}

src/lib/builders/branch-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -27,14 +26,7 @@ import { validators } from '../validators';
2726
*/
2827
function branchBuildingFn(data: Specification.Branch): () => Specification.Branch {
2928
return () => {
30-
const validate = validators.get('Branch');
31-
// TODO: ignore validation if no validator or throw ?
32-
if (!validate) return data;
33-
if (!validate(data)) {
34-
console.warn(validate.errors);
35-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
36-
throw new Error(`Branch is invalid: ${firstError.message}`);
37-
}
29+
validate('Branch', data);
3830
return data;
3931
};
4032
}

src/lib/builders/callbackstate-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -29,14 +28,7 @@ function callbackstateBuildingFn(data: Specification.Callbackstate): () => Speci
2928
return () => {
3029
data.type = 'callback';
3130
data.usedForCompensation = data.usedForCompensation || false;
32-
const validate = validators.get('Callbackstate');
33-
// TODO: ignore validation if no validator or throw ?
34-
if (!validate) return data;
35-
if (!validate(data)) {
36-
console.warn(validate.errors);
37-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
38-
throw new Error(`Callbackstate is invalid: ${firstError.message}`);
39-
}
31+
validate('Callbackstate', data);
4032
return data;
4133
};
4234
}

src/lib/builders/correlation-def-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -27,14 +26,7 @@ import { validators } from '../validators';
2726
*/
2827
function correlationDefBuildingFn(data: Specification.CorrelationDef): () => Specification.CorrelationDef {
2928
return () => {
30-
const validate = validators.get('CorrelationDef');
31-
// TODO: ignore validation if no validator or throw ?
32-
if (!validate) return data;
33-
if (!validate(data)) {
34-
console.warn(validate.errors);
35-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
36-
throw new Error(`CorrelationDef is invalid: ${firstError.message}`);
37-
}
29+
validate('CorrelationDef', data);
3830
return data;
3931
};
4032
}

src/lib/builders/crondef-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -27,14 +26,7 @@ import { validators } from '../validators';
2726
*/
2827
function crondefBuildingFn(data: Specification.Crondef): () => Specification.Crondef {
2928
return () => {
30-
const validate = validators.get('Crondef');
31-
// TODO: ignore validation if no validator or throw ?
32-
if (!validate) return data;
33-
if (!validate(data)) {
34-
console.warn(validate.errors);
35-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
36-
throw new Error(`Crondef is invalid: ${firstError.message}`);
37-
}
29+
validate('Crondef', data);
3830
return data;
3931
};
4032
}

src/lib/builders/databasedswitch-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -29,14 +28,7 @@ function databasedswitchBuildingFn(data: Specification.Databasedswitch): () => S
2928
return () => {
3029
data.type = 'switch';
3130
data.usedForCompensation = data.usedForCompensation || false;
32-
const validate = validators.get('Databasedswitch');
33-
// TODO: ignore validation if no validator or throw ?
34-
if (!validate) return data;
35-
if (!validate(data)) {
36-
console.warn(validate.errors);
37-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
38-
throw new Error(`Databasedswitch is invalid: ${firstError.message}`);
39-
}
31+
validate('Databasedswitch', data);
4032
return data;
4133
};
4234
}

src/lib/builders/datacondition-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -27,14 +26,7 @@ import { validators } from '../validators';
2726
*/
2827
function dataconditionBuildingFn(data: Specification.Datacondition): () => Specification.Datacondition {
2928
return () => {
30-
const validate = validators.get('Datacondition');
31-
// TODO: ignore validation if no validator or throw ?
32-
if (!validate) return data;
33-
if (!validate(data)) {
34-
console.warn(validate.errors);
35-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
36-
throw new Error(`Datacondition is invalid: ${firstError.message}`);
37-
}
29+
validate('Datacondition', data);
3830
return data;
3931
};
4032
}

src/lib/builders/defaultdef-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -27,14 +26,7 @@ import { validators } from '../validators';
2726
*/
2827
function defaultdefBuildingFn(data: Specification.Defaultdef): () => Specification.Defaultdef {
2928
return () => {
30-
const validate = validators.get('Defaultdef');
31-
// TODO: ignore validation if no validator or throw ?
32-
if (!validate) return data;
33-
if (!validate(data)) {
34-
console.warn(validate.errors);
35-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
36-
throw new Error(`Defaultdef is invalid: ${firstError.message}`);
37-
}
29+
validate('Defaultdef', data);
3830
return data;
3931
};
4032
}

src/lib/builders/delaystate-builder.ts

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,9 @@
1515
*
1616
*/
1717

18-
import { DefinedError } from 'ajv';
1918
import { Builder, builder } from '../builder';
2019
import { Specification } from '../definitions';
21-
import { validators } from '../validators';
20+
import { validate } from '../utils';
2221

2322
/**
2423
* The internal function used by the builder proxy to validate and return its underlying object
@@ -29,14 +28,7 @@ function delaystateBuildingFn(data: Specification.Delaystate): () => Specificati
2928
return () => {
3029
data.type = 'delay';
3130
data.usedForCompensation = data.usedForCompensation || false;
32-
const validate = validators.get('Delaystate');
33-
// TODO: ignore validation if no validator or throw ?
34-
if (!validate) return data;
35-
if (!validate(data)) {
36-
console.warn(validate.errors);
37-
const firstError: DefinedError = (validate.errors as DefinedError[])[0];
38-
throw new Error(`Delaystate is invalid: ${firstError.message}`);
39-
}
31+
validate('Delaystate', data);
4032
return data;
4133
};
4234
}

0 commit comments

Comments
 (0)