Не удалось найти валидатор присутствия с помощью дополнения Ember Validations
Я пытаюсь использовать аддон Ember Validations и не могу заставить его работать. В консоли Chrome я вижу: ПРЕДУПРЕЖДЕНИЕ: Не удалось найти средство проверки "присутствия".
Вот моя модель:
import Ember from 'ember';
import DS from 'ember-data';
import EmberValidations from 'ember-validations';
export default DS.Model.extend(EmberValidations.Mixin, {
name: DS.attr('string'),
validations: {
name: {
presence: true
}
}
});
И вот мой тест:
import Ember from 'ember';
import EmberValidations from 'ember-validations';
import { moduleForModel, test } from 'ember-qunit';
moduleForModel('person', 'Unit | Model | person', {
// Specify the other units that are required for this test.
needs: ['ember-validations@validator:local/presence'],
afterEach: function() {
window.sessionStorage.clear();
}
});
test('isValid should be false if name is not set', function(assert) {
stop();
var model = this.subject();
console.log(model);
Ember.run(function() {
sinon.spy(model, 'save');
model.validate().then(function() {
start();
assert.equal(model.get('isValid'), false);
});
});
});
Результат этого теста:
Умер во время теста № 1 в Object.test ( http://localhost:4200/assets/test-support.js:1644:11) в http://localhost:4200/assets/myproj.js:14450:15 в моде.state ( http://localhost:4200/assets/vendor.js:150:29) в tryFinally ( http://localhost:4200/assets/vendor.js:30:14) в requireModule ( http://localhost:4200/assets/vendor.js:148:5) в Object.TestLoader.require ( http://localhost:4200/assets/test-loader.js:29:9) в Object.TestLoader.loadModules ( http://localhost:4200/assets/test-loader.js:21:18): <(неизвестный миксин): ember848>
1 ответ
Вам необходимо добавить зависимости в набор тестов, как определено в документах ember-validations в части тестирования. Однако обратите внимание, что эти документы немного устарели. Правильный needs
должен включать только те валидаторы, которые вы используете (presence
) и выглядеть так:
needs: ['ember-validations@validator:local/presence']
Не включайте service:validations
,
Я опубликовал проблему довольно давно, но она еще не обсуждалась.