@sprucelabs/schema 25.5.63 → 25.5.67

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.
Files changed (94) hide show
  1. package/build/esm/DynamicSchemaEntityImplementation.d.ts +1 -1
  2. package/build/esm/fields/AbstractField.d.ts +1 -1
  3. package/build/esm/fields/field.static.types.d.ts +1 -1
  4. package/build/esm/schemas.static.types.d.ts +1 -1
  5. package/build/esm/utilities/normalizeFieldValue.d.ts +1 -1
  6. package/package.json +15 -14
  7. package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.d.ts +0 -7
  8. package/build/esm/__tests__/behavioral/AssertingSelectOptions.test.js +0 -93
  9. package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.d.ts +0 -18
  10. package/build/esm/__tests__/behavioral/AssertingValidationErrors.test.js +0 -217
  11. package/build/esm/__tests__/behavioral/BuildSchema.test.d.ts +0 -5
  12. package/build/esm/__tests__/behavioral/BuildSchema.test.js +0 -66
  13. package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.d.ts +0 -7
  14. package/build/esm/__tests__/behavioral/CreatingEntityInstances.test.js +0 -93
  15. package/build/esm/__tests__/behavioral/DroppingFields.test.d.ts +0 -5
  16. package/build/esm/__tests__/behavioral/DroppingFields.test.js +0 -86
  17. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.d.ts +0 -9
  18. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplates.test.js +0 -137
  19. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.d.ts +0 -5
  20. package/build/esm/__tests__/behavioral/GeneratesRelationshipTemplatesWithSuffix.test.js +0 -146
  21. package/build/esm/__tests__/behavioral/GeneratesTemplates.test.d.ts +0 -5
  22. package/build/esm/__tests__/behavioral/GeneratesTemplates.test.js +0 -67
  23. package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.d.ts +0 -5
  24. package/build/esm/__tests__/behavioral/GeneratesTypeMappers.test.js +0 -29
  25. package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.d.ts +0 -11
  26. package/build/esm/__tests__/behavioral/GeneratesVersionedRelationshipTemplates.test.js +0 -191
  27. package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.d.ts +0 -7
  28. package/build/esm/__tests__/behavioral/GettingFieldsOffASchema.test.js +0 -88
  29. package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.d.ts +0 -17
  30. package/build/esm/__tests__/behavioral/HandlesDynamicFields.test.js +0 -284
  31. package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.d.ts +0 -11
  32. package/build/esm/__tests__/behavioral/HandlesHidingPrivateFields.test.js +0 -111
  33. package/build/esm/__tests__/behavioral/HandlesRelationships.test.d.ts +0 -9
  34. package/build/esm/__tests__/behavioral/HandlesRelationships.test.js +0 -175
  35. package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.d.ts +0 -4
  36. package/build/esm/__tests__/behavioral/HandlesRequiredFields.test.js +0 -37
  37. package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.d.ts +0 -6
  38. package/build/esm/__tests__/behavioral/HandlesVersionedRelationships.test.js +0 -102
  39. package/build/esm/__tests__/behavioral/HandlesVersioning.test.d.ts +0 -8
  40. package/build/esm/__tests__/behavioral/HandlesVersioning.test.js +0 -93
  41. package/build/esm/__tests__/behavioral/IsIdWithVersion.test.d.ts +0 -4
  42. package/build/esm/__tests__/behavioral/IsIdWithVersion.test.js +0 -30
  43. package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.d.ts +0 -4
  44. package/build/esm/__tests__/behavioral/MakingFieldsOptional.test.js +0 -57
  45. package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.d.ts +0 -6
  46. package/build/esm/__tests__/behavioral/NormalizeToSchemaIdWithVersion.test.js +0 -77
  47. package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.d.ts +0 -8
  48. package/build/esm/__tests__/behavioral/NormalizingSchemaValues.test.js +0 -148
  49. package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.d.ts +0 -6
  50. package/build/esm/__tests__/behavioral/ResetsSchemasEveryTest.test.js +0 -45
  51. package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.d.ts +0 -9
  52. package/build/esm/__tests__/behavioral/SchemaDefaultValues.test.js +0 -138
  53. package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.d.ts +0 -4
  54. package/build/esm/__tests__/behavioral/SelectChoicesToHash.test.js +0 -43
  55. package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.d.ts +0 -9
  56. package/build/esm/__tests__/behavioral/SettingMinAndMaxValuesOnArrayFields.test.js +0 -104
  57. package/build/esm/__tests__/behavioral/UsingSchemas.test.d.ts +0 -13
  58. package/build/esm/__tests__/behavioral/UsingSchemas.test.js +0 -281
  59. package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.d.ts +0 -14
  60. package/build/esm/__tests__/behavioral/UsingTheSchemaRegisteryForNamespacedSchemas.test.js +0 -140
  61. package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.d.ts +0 -15
  62. package/build/esm/__tests__/behavioral/UsingTheSchemaRegistry.test.js +0 -117
  63. package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.d.ts +0 -28
  64. package/build/esm/__tests__/behavioral/ValidatingSchemaValues.test.js +0 -674
  65. package/build/esm/__tests__/data/personWithCars.d.ts +0 -188
  66. package/build/esm/__tests__/data/personWithCars.js +0 -163
  67. package/build/esm/__tests__/data/versionedPersonWithCars.d.ts +0 -323
  68. package/build/esm/__tests__/data/versionedPersonWithCars.js +0 -281
  69. package/build/esm/__tests__/implementation/BooleanField.test.d.ts +0 -6
  70. package/build/esm/__tests__/implementation/BooleanField.test.js +0 -59
  71. package/build/esm/__tests__/implementation/DurationField.test.d.ts +0 -7
  72. package/build/esm/__tests__/implementation/DurationField.test.js +0 -45
  73. package/build/esm/__tests__/implementation/EmailField.test.d.ts +0 -4
  74. package/build/esm/__tests__/implementation/EmailField.test.js +0 -39
  75. package/build/esm/__tests__/implementation/ErrorMapUtil.test.d.ts +0 -11
  76. package/build/esm/__tests__/implementation/ErrorMapUtil.test.js +0 -176
  77. package/build/esm/__tests__/implementation/FieldFactory.test.d.ts +0 -4
  78. package/build/esm/__tests__/implementation/FieldFactory.test.js +0 -35
  79. package/build/esm/__tests__/implementation/FileField.test.d.ts +0 -19
  80. package/build/esm/__tests__/implementation/FileField.test.js +0 -125
  81. package/build/esm/__tests__/implementation/NumberField.test.d.ts +0 -5
  82. package/build/esm/__tests__/implementation/NumberField.test.js +0 -54
  83. package/build/esm/__tests__/implementation/PhoneField.test.d.ts +0 -7
  84. package/build/esm/__tests__/implementation/PhoneField.test.js +0 -82
  85. package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.d.ts +0 -5
  86. package/build/esm/__tests__/implementation/SchemaFieldTransformingOptions.test.js +0 -209
  87. package/build/esm/__tests__/implementation/SchemaFieldValidation.test.d.ts +0 -8
  88. package/build/esm/__tests__/implementation/SchemaFieldValidation.test.js +0 -87
  89. package/build/esm/__tests__/implementation/SelectField.test.d.ts +0 -8
  90. package/build/esm/__tests__/implementation/SelectField.test.js +0 -127
  91. package/build/esm/__tests__/implementation/TextField.test.d.ts +0 -4
  92. package/build/esm/__tests__/implementation/TextField.test.js +0 -34
  93. package/build/esm/__tests__/implementation/ValidateErrorMessageFormatter.test.d.ts +0 -16
  94. 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,4 +0,0 @@
1
- import AbstractSchemaTest from '../../AbstractSchemaTest';
2
- export default class TextFieldTest extends AbstractSchemaTest {
3
- protected static zeroLengthStringFailsValidationWhenRequired(): Promise<void>;
4
- }
@@ -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);