adopted-ember-addons / ember-cp-validations

Ember computed property based validations

Home Page:https://adopted-ember-addons.github.io/ember-cp-validations/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Validations including a has-many relationship broken when lazily evaluated

BlueRaja opened this issue · comments

Environment

  • Ember Version: 3.16
  • Ember CLI Version: 3.16?
  • Ember CP Validations Version: 4

Steps to Reproduce

outerClass:

buildValidations({
  innerClasses: [
    validator('has-many'),
    validator('inline', {
      dependentKeys: ['model.innerClasses.@each.foo'],
      validate(value) { ... }
    }],
});

innerClass:

buildValidations({
    foo: validator('presence', { presence: true }),
    bar: validator('presence', { presence: true }),
});
  1. While running the app, cause both the inline and has-many validations to fail.
  2. Fix the problem with innerClass so all its validations pass, but don't fix the inline validation

Expected results

Validations fail. outerClass.validations.errors should include 1 error with type === 'inline' and attribute === 'innerClasses'

Actual results

Validations pass

Workarounds

Any one of:

  • Pass { lazy: false } to outerClass's buildValidations call.
  • Reorder the array passed to outerClass's buildValidations call so the has-many validation is last