@sprucelabs/schema 25.5.64 → 25.5.68
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/esm/DynamicSchemaEntityImplementation.d.ts +1 -1
- package/build/esm/fields/AbstractField.d.ts +1 -1
- package/build/esm/fields/field.static.types.d.ts +1 -1
- package/build/esm/schemas.static.types.d.ts +1 -1
- package/build/esm/utilities/assertOptions.js +1 -1
- package/build/esm/utilities/normalizeFieldValue.d.ts +1 -1
- package/build/utilities/assertOptions.js +1 -1
- package/package.json +14 -13
- package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.js +0 -93
- package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.d.ts +0 -18
- package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.js +0 -217
- package/build/esm/__tests__/behavioral/BuildSchema.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/BuildSchema.test.js +0 -66
- package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.js +0 -93
- package/build/esm/__tests__/behavioral/DroppingFields.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/DroppingFields.test.js +0 -86
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.js +0 -137
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.js +0 -146
- package/build/esm/__tests__/behavioral/GeneratesTemplates.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/GeneratesTemplates.test.js +0 -67
- package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.d.ts +0 -5
- package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.js +0 -29
- package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.d.ts +0 -11
- package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.js +0 -191
- package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.d.ts +0 -7
- package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.js +0 -88
- package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.d.ts +0 -17
- package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.js +0 -284
- package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.d.ts +0 -11
- package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.js +0 -111
- package/build/esm/__tests__/behavioral/HandlesRelationships.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/HandlesRelationships.test.js +0 -175
- package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.js +0 -37
- package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.js +0 -102
- package/build/esm/__tests__/behavioral/HandlesVersioning.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/HandlesVersioning.test.js +0 -93
- package/build/esm/__tests__/behavioral/IsIdWithVersion.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/IsIdWithVersion.test.js +0 -30
- package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.js +0 -57
- package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.js +0 -77
- package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.d.ts +0 -8
- package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.js +0 -148
- package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.d.ts +0 -6
- package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.js +0 -45
- package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.js +0 -138
- package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.d.ts +0 -4
- package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.js +0 -43
- package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.d.ts +0 -9
- package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.js +0 -104
- package/build/esm/__tests__/behavioral/UsingSchemas.test.d.ts +0 -13
- package/build/esm/__tests__/behavioral/UsingSchemas.test.js +0 -281
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.d.ts +0 -14
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.js +0 -140
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.d.ts +0 -15
- package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.js +0 -117
- package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.d.ts +0 -28
- package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.js +0 -674
- package/build/esm/__tests__/data/personWithCars.d.ts +0 -188
- package/build/esm/__tests__/data/personWithCars.js +0 -163
- package/build/esm/__tests__/data/versionedPersonWithCars.d.ts +0 -323
- package/build/esm/__tests__/data/versionedPersonWithCars.js +0 -281
- package/build/esm/__tests__/implementation/BooleanField.test.d.ts +0 -6
- package/build/esm/__tests__/implementation/BooleanField.test.js +0 -59
- package/build/esm/__tests__/implementation/DurationField.test.d.ts +0 -7
- package/build/esm/__tests__/implementation/DurationField.test.js +0 -45
- package/build/esm/__tests__/implementation/EmailField.test.d.ts +0 -4
- package/build/esm/__tests__/implementation/EmailField.test.js +0 -39
- package/build/esm/__tests__/implementation/ErrorMapUtil.test.d.ts +0 -11
- package/build/esm/__tests__/implementation/ErrorMapUtil.test.js +0 -176
- package/build/esm/__tests__/implementation/FieldFactory.test.d.ts +0 -4
- package/build/esm/__tests__/implementation/FieldFactory.test.js +0 -35
- package/build/esm/__tests__/implementation/FileField.test.d.ts +0 -19
- package/build/esm/__tests__/implementation/FileField.test.js +0 -125
- package/build/esm/__tests__/implementation/NumberField.test.d.ts +0 -5
- package/build/esm/__tests__/implementation/NumberField.test.js +0 -54
- package/build/esm/__tests__/implementation/PhoneField.test.d.ts +0 -7
- package/build/esm/__tests__/implementation/PhoneField.test.js +0 -82
- package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.d.ts +0 -5
- package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.js +0 -209
- package/build/esm/__tests__/implementation/SchemaFieldValidation.test.d.ts +0 -8
- package/build/esm/__tests__/implementation/SchemaFieldValidation.test.js +0 -87
- package/build/esm/__tests__/implementation/SelectField.test.d.ts +0 -8
- package/build/esm/__tests__/implementation/SelectField.test.js +0 -127
- package/build/esm/__tests__/implementation/TextField.test.d.ts +0 -4
- package/build/esm/__tests__/implementation/TextField.test.js +0 -34
- package/build/esm/__tests__/implementation/ValidateErrorMessageFormatter.test.d.ts +0 -16
- package/build/esm/__tests__/implementation/ValidateErrorMessageFormatter.test.js +0 -216
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
import AbstractSpruceTest, { test, assert } from '@sprucelabs/test';
|
|
17
|
-
import { FieldFactory } from '../../index.js';
|
|
18
|
-
import StaticSchemaEntityImplementation from '../../StaticSchemaEntityImplementation.js';
|
|
19
|
-
import buildSchema from '../../utilities/buildSchema.js';
|
|
20
|
-
export default class SelectFieldTest extends AbstractSpruceTest {
|
|
21
|
-
static canMakeSelectOptionsUnion() {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
const user = new StaticSchemaEntityImplementation(this.userSchema, {
|
|
24
|
-
favoriteColor: 'blue',
|
|
25
|
-
favoriteColorRequired: 'blue',
|
|
26
|
-
});
|
|
27
|
-
const favColor = user.get('favoriteColor');
|
|
28
|
-
const favoriteColorRequired = user.get('favoriteColorRequired');
|
|
29
|
-
assert.isType(favColor);
|
|
30
|
-
assert.isType(favoriteColorRequired);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
static catchesBadChoice() {
|
|
34
|
-
const field = FieldFactory.Field('test', {
|
|
35
|
-
type: 'select',
|
|
36
|
-
options: {
|
|
37
|
-
choices: [
|
|
38
|
-
{ label: 'good', value: 'good' },
|
|
39
|
-
{ label: 'bad', value: 'bad' },
|
|
40
|
-
{ label: 'ugly', value: 'ugly' },
|
|
41
|
-
],
|
|
42
|
-
},
|
|
43
|
-
});
|
|
44
|
-
const results = field.validate('cheese');
|
|
45
|
-
assert.isLength(results, 1);
|
|
46
|
-
assert.isEqual(results[0].code, 'INVALID_PARAMETER');
|
|
47
|
-
}
|
|
48
|
-
static validationHandlesUndefinedForOptional() {
|
|
49
|
-
const field = FieldFactory.Field('test', {
|
|
50
|
-
type: 'select',
|
|
51
|
-
options: {
|
|
52
|
-
choices: [
|
|
53
|
-
{ label: 'good', value: 'good' },
|
|
54
|
-
{ label: 'bad', value: 'bad' },
|
|
55
|
-
{ label: 'ugly', value: 'ugly' },
|
|
56
|
-
],
|
|
57
|
-
},
|
|
58
|
-
});
|
|
59
|
-
const results = field.validate(undefined);
|
|
60
|
-
assert.isLength(results, 0);
|
|
61
|
-
}
|
|
62
|
-
static validationHandlesRequired() {
|
|
63
|
-
const field = FieldFactory.Field('test', {
|
|
64
|
-
type: 'select',
|
|
65
|
-
isRequired: true,
|
|
66
|
-
options: {
|
|
67
|
-
choices: [
|
|
68
|
-
{ label: 'good', value: 'good' },
|
|
69
|
-
{ label: 'bad', value: 'bad' },
|
|
70
|
-
{ label: 'ugly', value: 'ugly' },
|
|
71
|
-
],
|
|
72
|
-
},
|
|
73
|
-
});
|
|
74
|
-
const results = field.validate(undefined);
|
|
75
|
-
assert.isLength(results, 1);
|
|
76
|
-
assert.isEqual(results[0].code, 'MISSING_PARAMETER');
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
SelectFieldTest.userSchema = buildSchema({
|
|
80
|
-
id: 'select-union-test',
|
|
81
|
-
name: 'select union test',
|
|
82
|
-
fields: {
|
|
83
|
-
favoriteColor: {
|
|
84
|
-
type: 'select',
|
|
85
|
-
options: {
|
|
86
|
-
choices: [
|
|
87
|
-
{
|
|
88
|
-
value: 'blue',
|
|
89
|
-
label: 'Blue',
|
|
90
|
-
},
|
|
91
|
-
{
|
|
92
|
-
value: 'red',
|
|
93
|
-
label: 'Red',
|
|
94
|
-
},
|
|
95
|
-
],
|
|
96
|
-
},
|
|
97
|
-
},
|
|
98
|
-
favoriteColorRequired: {
|
|
99
|
-
type: 'select',
|
|
100
|
-
isRequired: true,
|
|
101
|
-
options: {
|
|
102
|
-
choices: [
|
|
103
|
-
{
|
|
104
|
-
value: 'blue',
|
|
105
|
-
label: 'Blue',
|
|
106
|
-
},
|
|
107
|
-
{
|
|
108
|
-
value: 'red',
|
|
109
|
-
label: 'Red',
|
|
110
|
-
},
|
|
111
|
-
],
|
|
112
|
-
},
|
|
113
|
-
},
|
|
114
|
-
},
|
|
115
|
-
});
|
|
116
|
-
__decorate([
|
|
117
|
-
test('Makes select options a union (test passes, lint will fail)')
|
|
118
|
-
], SelectFieldTest, "canMakeSelectOptionsUnion", null);
|
|
119
|
-
__decorate([
|
|
120
|
-
test()
|
|
121
|
-
], SelectFieldTest, "catchesBadChoice", null);
|
|
122
|
-
__decorate([
|
|
123
|
-
test()
|
|
124
|
-
], SelectFieldTest, "validationHandlesUndefinedForOptional", null);
|
|
125
|
-
__decorate([
|
|
126
|
-
test()
|
|
127
|
-
], SelectFieldTest, "validationHandlesRequired", null);
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
import { test, assert } from '@sprucelabs/test';
|
|
17
|
-
import AbstractSchemaTest from '../../AbstractSchemaTest.js';
|
|
18
|
-
import FieldFactory from '../../factories/FieldFactory.js';
|
|
19
|
-
export default class TextFieldTest extends AbstractSchemaTest {
|
|
20
|
-
static zeroLengthStringFailsValidationWhenRequired() {
|
|
21
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
22
|
-
const field = FieldFactory.Field('firstName', {
|
|
23
|
-
type: 'text',
|
|
24
|
-
isRequired: true,
|
|
25
|
-
});
|
|
26
|
-
const errors = field.validate('');
|
|
27
|
-
assert.isAbove(errors.length, 0);
|
|
28
|
-
assert.isEqual(errors[0].code, 'MISSING_PARAMETER');
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
__decorate([
|
|
33
|
-
test()
|
|
34
|
-
], TextFieldTest, "zeroLengthStringFailsValidationWhenRequired", null);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import AbstractSpruceTest from '@sprucelabs/test';
|
|
2
|
-
import { RenderOptions } from '../../errors/ValidateErrorMessageFormatter';
|
|
3
|
-
export default class ValidateErrorMessageFormatterTest extends AbstractSpruceTest {
|
|
4
|
-
protected static throwsWhenMissingValidateError(): Promise<void>;
|
|
5
|
-
protected static throwsWhenSentBadErrorCode(): Promise<void>;
|
|
6
|
-
protected static throwsWhenSentBadError(): Promise<void>;
|
|
7
|
-
protected static outputsSchemaIdOrName(options?: RenderOptions): Promise<void>;
|
|
8
|
-
protected static showAccurateCountOfErrors(): Promise<void>;
|
|
9
|
-
protected static canCountNestedErrors(): Promise<void>;
|
|
10
|
-
protected static outputsAllTheFieldsAThatAreWrong(): Promise<void>;
|
|
11
|
-
protected static outputsAllTheFieldsAThatAreWrongIncludingNested(): Promise<void>;
|
|
12
|
-
protected static rendersFriendlyMessageIfItExists(): void;
|
|
13
|
-
private static renderError;
|
|
14
|
-
private static ValidationError;
|
|
15
|
-
private static Formatter;
|
|
16
|
-
}
|
|
@@ -1,216 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
import AbstractSpruceTest, { test, assert } from '@sprucelabs/test';
|
|
17
|
-
import { errorAssertUtil } from '@sprucelabs/test-utils';
|
|
18
|
-
import SpruceError from '../../errors/SpruceError.js';
|
|
19
|
-
import { ValidateErrorMessageFormatter, } from '../../errors/ValidateErrorMessageFormatter.js';
|
|
20
|
-
export default class ValidateErrorMessageFormatterTest extends AbstractSpruceTest {
|
|
21
|
-
static throwsWhenMissingValidateError() {
|
|
22
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
//@ts-ignore
|
|
24
|
-
const err = assert.doesThrow(() => this.Formatter());
|
|
25
|
-
errorAssertUtil.assertError(err, 'MISSING_PARAMETERS', {
|
|
26
|
-
parameters: ['error'],
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
static throwsWhenSentBadErrorCode() {
|
|
31
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
32
|
-
const err = assert.doesThrow(() => this.Formatter(
|
|
33
|
-
//@ts-ignore
|
|
34
|
-
new SpruceError({ code: 'MISSING_PARAMETERS', parameters: [] })));
|
|
35
|
-
errorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {
|
|
36
|
-
parameters: ['error'],
|
|
37
|
-
});
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
static throwsWhenSentBadError() {
|
|
41
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
42
|
-
const err = assert.doesThrow(
|
|
43
|
-
//@ts-ignore
|
|
44
|
-
() => this.Formatter(new Error('yay')));
|
|
45
|
-
errorAssertUtil.assertError(err, 'INVALID_PARAMETERS', {
|
|
46
|
-
parameters: ['error'],
|
|
47
|
-
});
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
static outputsSchemaIdOrName(options) {
|
|
51
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
52
|
-
const schemaId = `${new Date().getTime()}`;
|
|
53
|
-
const schemaName = `${new Date().getTime() * 2}`;
|
|
54
|
-
const message = this.renderError({ schemaId, schemaName }, options);
|
|
55
|
-
if (options === null || options === void 0 ? void 0 : options.shouldUseReadableNames) {
|
|
56
|
-
assert.doesInclude(message, schemaName);
|
|
57
|
-
}
|
|
58
|
-
else {
|
|
59
|
-
assert.doesInclude(message, schemaId);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
static showAccurateCountOfErrors() {
|
|
64
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
65
|
-
assert.doesInclude(this.renderError({ errors: [] }), '0 errors');
|
|
66
|
-
assert.doesInclude(this.renderError({
|
|
67
|
-
errors: [
|
|
68
|
-
{
|
|
69
|
-
code: 'INVALID_PARAMETER',
|
|
70
|
-
name: 'firstName',
|
|
71
|
-
},
|
|
72
|
-
],
|
|
73
|
-
}), '1 error!');
|
|
74
|
-
assert.doesInclude(this.renderError({
|
|
75
|
-
errors: [
|
|
76
|
-
{
|
|
77
|
-
code: 'INVALID_PARAMETER',
|
|
78
|
-
name: 'firstName',
|
|
79
|
-
},
|
|
80
|
-
{
|
|
81
|
-
code: 'INVALID_PARAMETER',
|
|
82
|
-
name: 'lastName',
|
|
83
|
-
},
|
|
84
|
-
],
|
|
85
|
-
}), '2 errors!');
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
static canCountNestedErrors() {
|
|
89
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
assert.doesInclude(this.renderError({
|
|
91
|
-
errors: [
|
|
92
|
-
{
|
|
93
|
-
code: 'INVALID_PARAMETER',
|
|
94
|
-
name: 'favoriteColor',
|
|
95
|
-
errors: [
|
|
96
|
-
{
|
|
97
|
-
code: 'MISSING_PARAMETER',
|
|
98
|
-
name: 'name',
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
code: 'MISSING_PARAMETER',
|
|
102
|
-
name: 'rgb',
|
|
103
|
-
},
|
|
104
|
-
],
|
|
105
|
-
},
|
|
106
|
-
],
|
|
107
|
-
}), '2 errors');
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
static outputsAllTheFieldsAThatAreWrong() {
|
|
111
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
112
|
-
const name1 = `${new Date().getTime()}`;
|
|
113
|
-
const name2 = `${new Date().getTime() * 2}`;
|
|
114
|
-
const msg = this.renderError({
|
|
115
|
-
errors: [
|
|
116
|
-
{
|
|
117
|
-
code: 'INVALID_PARAMETER',
|
|
118
|
-
name: name1,
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
code: 'MISSING_PARAMETER',
|
|
122
|
-
name: name2,
|
|
123
|
-
},
|
|
124
|
-
{
|
|
125
|
-
code: 'MISSING_PARAMETER',
|
|
126
|
-
name: 'rgb',
|
|
127
|
-
},
|
|
128
|
-
],
|
|
129
|
-
});
|
|
130
|
-
assert.doesInclude(msg, new RegExp(`${name1}.*is.*invalid`, `gis`));
|
|
131
|
-
assert.doesInclude(msg, new RegExp(`${name2}.*is.*required`, `gis`));
|
|
132
|
-
assert.doesInclude(msg, new RegExp(`rgb.*is.*required`, `gis`));
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
static outputsAllTheFieldsAThatAreWrongIncludingNested() {
|
|
136
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
const name1 = `${new Date().getTime()}`;
|
|
138
|
-
const name2 = `${new Date().getTime() * 2}`;
|
|
139
|
-
const msg = this.renderError({
|
|
140
|
-
errors: [
|
|
141
|
-
{
|
|
142
|
-
code: 'INVALID_PARAMETER',
|
|
143
|
-
name: name1,
|
|
144
|
-
errors: [
|
|
145
|
-
{
|
|
146
|
-
code: 'MISSING_PARAMETER',
|
|
147
|
-
name: name2,
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
code: 'MISSING_PARAMETER',
|
|
151
|
-
name: 'rgb',
|
|
152
|
-
},
|
|
153
|
-
],
|
|
154
|
-
},
|
|
155
|
-
],
|
|
156
|
-
});
|
|
157
|
-
assert.doesNotInclude(msg, new RegExp(`${name1}.*is.*invalid`, `gis`));
|
|
158
|
-
assert.doesInclude(msg, new RegExp(`${name1}.${name2}.*is.*required`, `gis`));
|
|
159
|
-
assert.doesNotInclude(msg, new RegExp(`${name1}.*has 2 errors`, `gis`));
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
static rendersFriendlyMessageIfItExists() {
|
|
163
|
-
const msg = this.renderError({
|
|
164
|
-
errors: [
|
|
165
|
-
{
|
|
166
|
-
code: 'INVALID_PARAMETER',
|
|
167
|
-
name: 'firstName',
|
|
168
|
-
friendlyMessage: 'This is crazy!',
|
|
169
|
-
},
|
|
170
|
-
],
|
|
171
|
-
});
|
|
172
|
-
assert.doesInclude(msg, '1. (firstName) This is crazy!');
|
|
173
|
-
}
|
|
174
|
-
static renderError(errorOptions, renderOptions) {
|
|
175
|
-
const error = this.ValidationError(errorOptions);
|
|
176
|
-
const formatter = this.Formatter(error);
|
|
177
|
-
const message = formatter.render(renderOptions);
|
|
178
|
-
return message;
|
|
179
|
-
}
|
|
180
|
-
static ValidationError(options) {
|
|
181
|
-
return new SpruceError(Object.assign({ code: 'VALIDATION_FAILED', schemaId: `${Math.random()}`, schemaName: `${Math.random() * 2} name`, errors: [] }, options));
|
|
182
|
-
}
|
|
183
|
-
static Formatter(error) {
|
|
184
|
-
return new ValidateErrorMessageFormatter(error);
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
__decorate([
|
|
188
|
-
test()
|
|
189
|
-
], ValidateErrorMessageFormatterTest, "throwsWhenMissingValidateError", null);
|
|
190
|
-
__decorate([
|
|
191
|
-
test()
|
|
192
|
-
], ValidateErrorMessageFormatterTest, "throwsWhenSentBadErrorCode", null);
|
|
193
|
-
__decorate([
|
|
194
|
-
test()
|
|
195
|
-
], ValidateErrorMessageFormatterTest, "throwsWhenSentBadError", null);
|
|
196
|
-
__decorate([
|
|
197
|
-
test('renders schemaId by default'),
|
|
198
|
-
test('renders schemaName with shouldUseReadableNames', {
|
|
199
|
-
shouldUseReadableNames: true,
|
|
200
|
-
})
|
|
201
|
-
], ValidateErrorMessageFormatterTest, "outputsSchemaIdOrName", null);
|
|
202
|
-
__decorate([
|
|
203
|
-
test()
|
|
204
|
-
], ValidateErrorMessageFormatterTest, "showAccurateCountOfErrors", null);
|
|
205
|
-
__decorate([
|
|
206
|
-
test()
|
|
207
|
-
], ValidateErrorMessageFormatterTest, "canCountNestedErrors", null);
|
|
208
|
-
__decorate([
|
|
209
|
-
test()
|
|
210
|
-
], ValidateErrorMessageFormatterTest, "outputsAllTheFieldsAThatAreWrong", null);
|
|
211
|
-
__decorate([
|
|
212
|
-
test()
|
|
213
|
-
], ValidateErrorMessageFormatterTest, "outputsAllTheFieldsAThatAreWrongIncludingNested", null);
|
|
214
|
-
__decorate([
|
|
215
|
-
test()
|
|
216
|
-
], ValidateErrorMessageFormatterTest, "rendersFriendlyMessageIfItExists", null);
|