longshotlabs / simpl-schema

A JavaScript schema validation package that supports direct validation of MongoDB update modifier objects
https://www.npmjs.com/package/simpl-schema
MIT License
560 stars 114 forks source link

When a field with a Schema is `optional: true`, then validation fails #495

Closed scharf closed 5 months ago

scharf commented 5 months ago

Given this code:

import SimpleSchema from 'simpl-schema';

const SubSchema = new SimpleSchema({
    field: {
        type: String,
    },
});

const MainSchema = new SimpleSchema({
    parent: {
        type: SubSchema,
        optional: true,
    },
});

// Validate an empty object
MainSchema.validate({});

I get the following error:

{
  errorType: 'ClientError',
  error: 'validation-error',
  details: [
    {
      name: 'parent.field',
      type: 'required',
      value: undefined,
      message: 'Field is required'
    }
  ]
}

I would not expect to see any errors because parent is optional.

github-actions[bot] commented 5 months ago

Thank you for submitting an issue!

If this is a bug report, please be sure to include, at minimum, example code showing a small schema and any necessary calls with all their arguments, which will reproduce the issue. Even better, you can link to a saved online code editor example, where anyone can immediately run the code and see the issue.

If you are requesting a feature, include a code example of how you imagine it working if it were implemented.

If you need to edit your issue description, click the [...] and choose Edit.

Be patient. This is a free and freely licensed package that I maintain in my spare time. You may get a response in a day, but it could also take a month. If you benefit from this package and would like to see more of my time devoted to it, you can help by sponsoring.

scharf commented 5 months ago

duplicate of #475