Skip to content

Commit b1da933

Browse files
committed
add test that observers error..validation
1 parent a4a87d0 commit b1da933

File tree

1 file changed

+25
-0
lines changed

1 file changed

+25
-0
lines changed

tests/unit/helpers/changeset-test.js

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { settled } from '@ember/test-helpers';
44
import { changeset } from 'ember-changeset-validations/helpers/changeset';
55
import { module, test } from 'qunit';
66
import { validatePresence, validateLength } from 'ember-changeset-validations/validators';
7+
import { reads } from '@ember/object/computed';
78

89
function validateUnique() {
910
return (_key, newValue) => {
@@ -80,6 +81,30 @@ module('Unit | Helper | changeset', function() {
8081
assert.deepEqual(changesetInstance.get('error').username, expectedError, 'username should error');
8182
});
8283

84+
test('it allows to observe changes to validation results on error object', async function(assert) {
85+
let user = EmberObject.extend({ name: null }).create();
86+
let userValidations = {
87+
name: [
88+
validatePresence(true),
89+
],
90+
};
91+
let changesetInstance = changeset([user, userValidations]);
92+
93+
let hostObject = EmberObject.extend({
94+
errorsForName: reads('changeset.error.name.validation'),
95+
}).create({
96+
changeset: changesetInstance,
97+
});
98+
99+
changesetInstance.set('name', 'Max');
100+
assert.equal(changesetInstance.get('error').name, undefined, 'get validation error directly');
101+
assert.equal(hostObject.errorsForName, undefined, 'get validation error through alias on host object');
102+
103+
changesetInstance.set('name', null);
104+
assert.deepEqual(changesetInstance.get('error').name.validation, ["[CUSTOM] Name can't be blank"], 'get validation error directly');
105+
assert.deepEqual(hostObject.errorsForName, ["[CUSTOM] Name can't be blank"], 'get validation error through alias on host object');
106+
});
107+
83108
test('it passes the original object into validators', async function(assert) {
84109
let User = EmberObject.extend({
85110
firstName: null,

0 commit comments

Comments
 (0)