Skip to content

Model validation doesn't report the model it fails for  #1891

@olivierlacan

Description

@olivierlacan

Version: 2.1.3

Given a model with required name and description attributes, I'm seeing the following validation errors:

     ValidationError: name: is a required property, description: is a required property
      at Function.createValidationError (node_modules/objection/lib/model/Model.js:357:12)
      at parseValidationError (node_modules/objection/lib/model/AjvValidator.js:189:21)
      at AjvValidator.validate (node_modules/objection/lib/model/AjvValidator.js:78:19)
      at validate (node_modules/objection/lib/model/modelValidate.js:35:20)
      at Object.$validate (node_modules/objection/lib/model/Model.js:93:12)
      at GraphInsertAction._insert (node_modules/objection/lib/queryBuilder/graph/insert/GraphInsertAction.js:177:16)
      at GraphInsertAction._insertBatch (node_modules/objection/lib/queryBuilder/graph/insert/GraphInsertAction.js:48:16)
      at processTicksAndRejections (internal/process/task_queues.js:97:5)

Shouldn't this error report which model it fails for? Seems like it'd be easier if multiple models are involved (test setup for example) to determine which one is the offending one, without requiring further debugging.

I'm imagining something like this for a model named Task:

     ValidationError (Task): name: is a required property, description: is a required property
      at Function.createValidationError (node_modules/objection/lib/model/Model.js:357:12)
      at parseValidationError (node_modules/objection/lib/model/AjvValidator.js:189:21)
      at AjvValidator.validate (node_modules/objection/lib/model/AjvValidator.js:78:19)
      at validate (node_modules/objection/lib/model/modelValidate.js:35:20)
      at Object.$validate (node_modules/objection/lib/model/Model.js:93:12)
      at GraphInsertAction._insert (node_modules/objection/lib/queryBuilder/graph/insert/GraphInsertAction.js:177:16)
      at GraphInsertAction._insertBatch (node_modules/objection/lib/queryBuilder/graph/insert/GraphInsertAction.js:48:16)
      at processTicksAndRejections (internal/process/task_queues.js:97:5)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions