diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-05-22 14:01:32 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-22 14:01:32 -0400 | 
| commit | 1096bbfa33a4af53ae2bfeee459c313fddb7c20d (patch) | |
| tree | da4714238cc0c7cb73a5532b78e04061467c9c7b /ext/js/data | |
| parent | be23acf499bcdb530c1b8990aa3d6211323cbdb2 (diff) | |
Update schema tests (#1693)
* Update helper functions
* Rename file
* Update deleteProperty
* Add some basic proxy tests
Diffstat (limited to 'ext/js/data')
| -rw-r--r-- | ext/js/data/json-schema.js | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/ext/js/data/json-schema.js b/ext/js/data/json-schema.js index 7b6b9c53..6a590911 100644 --- a/ext/js/data/json-schema.js +++ b/ext/js/data/json-schema.js @@ -103,8 +103,12 @@ class JsonSchemaProxyHandler {      }      deleteProperty(target, property) { -        const required = this._schema.required; -        if (Array.isArray(required) && required.includes(property)) { +        const required = ( +            (typeof target === 'object' && target !== null) ? +            (Array.isArray(target) || this._jsonSchemaValidator.isObjectPropertyRequired(this._schema, property)) : +            true +        ); +        if (required) {              throw new Error(`${property} cannot be deleted`);          }          return Reflect.deleteProperty(target, property); @@ -159,6 +163,11 @@ class JsonSchemaValidator {          this._regexCache.clear();      } +    isObjectPropertyRequired(schema, property) { +        const {required} = schema; +        return Array.isArray(required) && required.includes(property); +    } +      // Private      _getPropertySchema(schema, property, value, path) { |