До того, как я добавил файл has_one_attached: тест был успешным.
# document.rb
class Document < ApplicationRecord
# Attributes
enum status: %i[open completed expired void]
# Associations
has_one_attached :file
# Validations
validates :status, presence: true, inclusion: { in: Document.statuses.keys }
validates :file, attached: true, content_type: { in: 'application/pdf', message: 'is not a PDF file' }
validates :expiration_date, presence: true
end
# document_spec.rb
require 'rails_helper'
RSpec.describe Document, type: :model do
describe Document, type: :model do
subject(:document) { build(:document) }
it { is_expected.to validate_presence_of(:status) }
it { is_expected.to validate_presence_of(:file) }
it { is_expected.to validate_presence_of(:expiration_date) }
end
end
Неудачные примеры:
rspe c ./spec/models/document_spec .rb: 7 # Документ Ожидается, что документ подтвердит, что: status не может быть пустым / ложным rspec ./spec/models/document_spec.rb:9 # Документ Ожидается, что документ подтвердит, что: expiration_date не может быть пустым / ложным