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 }),
});
- While running the app, cause both the
inline
andhas-many
validations to fail. - Fix the problem with
innerClass
so all its validations pass, but don't fix theinline
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'sbuildValidations
call. - Reorder the array passed to outerClass's
buildValidations
call so thehas-many
validation is last