Не удалось найти валидатор присутствия с помощью дополнения 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,

Я опубликовал проблему довольно давно, но она еще не обсуждалась.

Другие вопросы по тегам