Rails 6 все тесты validate_presence_of не пройдены
Они терпят неудачу с: унифицированной константой ActiveModel::SecurePassword::InstanceMethodsOnActivation
Я пытаюсь обновить приложение rails 5.2 до бета-версии rails 6, и кажется, что все работает нормально, за исключением моих validate_presence_of specs.
Например
RSpec.describe Post, type: :model do
context 'validations' do
subject { Post.new(body: Faker::Movie.quote)}
it { should validate_presence_of :body }
it { should validate_length_of(:body).is_at_most(5000).on(:create) }
end
end
validate_length_of проходит нормально, а validate_presence из не делает. Сообщения принадлежат пользователю, который наследуется от Clearance:: User, но я не уверен, почему константа может отличаться в разных тестах для одной и той же модели?
2 ответа
Я сделал эту работу.
Здесь есть запрос на получение доступа к musta_matchers:
https://github.com/thoughtbot/shoulda-matchers/pull/1169
Пока команда shoulda_matchers не объединит это, используйте мою версию здесь:
https://github.com/morsedigital/shoulda-matchers
В вашем Gemfile:
gem 'shoulda-matchers', groups: [:test], git: 'https://github.com/morsedigital/shoulda-matchers'
В моем случае это было быстрое решение:
# spec/rails_helper.rb - add to bottom
class ActiveModel::SecurePassword::InstanceMethodsOnActivation; end;
Оказывается, это ошибка с musta-matchers.