diff --git a/app/models/passport.rb b/app/models/passport.rb
index ed1f998..4df0189 100644
--- a/app/models/passport.rb
+++ b/app/models/passport.rb
@@ -20,10 +20,6 @@ class Passport < ApplicationRecord
validates :unit_code, presence: true
validates :date_of_issue, presence: true
- validate do
- errors.add :image, :blank unless image.attached?
- end
-
before_validation do
self.patronymic = nil if patronymic.blank?
end
diff --git a/app/views/passports/show.html.erb b/app/views/passports/show.html.erb
index 806d174..7f4f144 100644
--- a/app/views/passports/show.html.erb
+++ b/app/views/passports/show.html.erb
@@ -137,8 +137,10 @@
-
- <%= image_tag url_for(@passport.image), class: 'img-fluid' %>
-
+ <% if @passport.image.attached? %>
+
+ <%= image_tag url_for(@passport.image), class: 'img-fluid' %>
+
+ <% end %>
diff --git a/factories/passports.rb b/factories/passports.rb
index 675600a..f6f81c0 100644
--- a/factories/passports.rb
+++ b/factories/passports.rb
@@ -2,13 +2,6 @@
FactoryBot.define do
factory :passport do
- transient do
- image_filename { image_fixture }
- image_fixture { "passport_image_#{rand(1..4)}.jpg" }
-
- image_path { Rails.root.join 'fixtures', image_fixture }
- end
-
confirmed { false }
surname { Faker::Name.last_name }
@@ -24,6 +17,15 @@ FactoryBot.define do
"#{rand(0..999).to_s.rjust(3, '0')}-#{rand(0..999).to_s.rjust(3, '0')}"
end
date_of_issue { Faker::Date.backward }
+ end
+
+ factory :passport_with_image, parent: :passport do
+ transient do
+ image_filename { image_fixture }
+ image_fixture { "passport_image_#{rand(1..4)}.jpg" }
+
+ image_path { Rails.root.join 'fixtures', image_fixture }
+ end
after :build do |passport, evaluator|
passport.image.attach(
@@ -33,7 +35,7 @@ FactoryBot.define do
end
end
- factory :confirmed_passport, parent: :passport do
+ factory :confirmed_passport, parent: :passport_with_image do
confirmed { true }
end
end
diff --git a/spec/requests/passports/show_spec.rb b/spec/requests/passports/show_spec.rb
index e2a2720..67bcb9c 100644
--- a/spec/requests/passports/show_spec.rb
+++ b/spec/requests/passports/show_spec.rb
@@ -12,4 +12,20 @@ RSpec.describe 'GET /passports/:id' do
specify do
expect(response).to have_http_status :ok
end
+
+ context 'when passport has an image' do
+ let!(:passport) { create :passport_with_image }
+
+ specify do
+ expect(response).to have_http_status :ok
+ end
+ end
+
+ context 'when passport is confirmed' do
+ let!(:passport) { create :confirmed_passport }
+
+ specify do
+ expect(response).to have_http_status :ok
+ end
+ end
end