Use documentables helper method within specs and document model.
This commit is contained in:
@@ -16,4 +16,10 @@ module DocumentablesHelper
|
||||
documentable.class.accepted_content_types
|
||||
end
|
||||
|
||||
def humanized_accepted_content_types(documentable)
|
||||
documentable.class.accepted_content_types
|
||||
.collect{ |content_type| content_type.split("/").last }
|
||||
.join(", ")
|
||||
end
|
||||
|
||||
end
|
||||
@@ -1,5 +1,6 @@
|
||||
class Document < ActiveRecord::Base
|
||||
include DocumentsHelper
|
||||
include DocumentablesHelper
|
||||
has_attached_file :attachment
|
||||
|
||||
belongs_to :user
|
||||
@@ -21,16 +22,16 @@ class Document < ActiveRecord::Base
|
||||
attachment_file_size > documentable.class.max_file_size
|
||||
errors[:attachment] = I18n.t("documents.errors.messages.in_between",
|
||||
min: "0 Bytes",
|
||||
max: "#{bytesToMeg(documentable.class.max_file_size)} MB")
|
||||
max: "#{max_file_size(documentable)} MB")
|
||||
end
|
||||
end
|
||||
|
||||
def validate_attachment_content_type
|
||||
if documentable.present? &&
|
||||
!documentable.class.accepted_content_types.include?(attachment_content_type)
|
||||
!accepted_content_types(documentable).include?(attachment_content_type)
|
||||
errors[:attachment] = I18n.t("documents.errors.messages.wrong_content_type",
|
||||
content_type: attachment_content_type,
|
||||
accepted_content_types: documentable.class.accepted_content_types.join(", "))
|
||||
accepted_content_types: humanized_accepted_content_types(documentable))
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
@@ -10,9 +10,18 @@
|
||||
<span class="icon-documents float-right"></span>
|
||||
<h2><%= t("documents.recommendations_title") %></h2>
|
||||
<ul class="recommendations">
|
||||
<li><%= t("documents.recommendation_one_html", max_documents_allowed: @document.documentable.class.max_documents_allowed) %></li>
|
||||
<li><%= t("documents.recommendation_two_html", accepted_content_types: @document.documentable.class.accepted_content_types.join(", ")) %></li>
|
||||
<li><%= t("documents.recommendation_three_html", max_file_size: bytesToMeg(@document.documentable.class.max_file_size)) %></li>
|
||||
<li>
|
||||
<%= t "documents.recommendation_one_html",
|
||||
max_documents_allowed: max_documents_allowed(@document.documentable) %>
|
||||
</li>
|
||||
<li>
|
||||
<%= t "documents.recommendation_two_html",
|
||||
accepted_content_types: humanized_accepted_content_types(@document.documentable) %>
|
||||
</li>
|
||||
<li>
|
||||
<%= t "documents.recommendation_three_html",
|
||||
max_file_size: max_file_size(@document.documentable) %>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
shared_examples "documentable" do |documentable_factory_name, documentable_path, documentable_path_arguments|
|
||||
include ActionView::Helpers
|
||||
include DocumentsHelper
|
||||
include DocumentablesHelper
|
||||
|
||||
let!(:administrator) { create(:user) }
|
||||
let!(:user) { create(:user) }
|
||||
let!(:arguments) { {} }
|
||||
let!(:documentable) { create(documentable_factory_name, author: user) }
|
||||
let!(:documentable_dom_name) { documentable_factory_name.gsub('_', '-') }
|
||||
let!(:documentable_dom_name) { documentable_factory_name.parameterize }
|
||||
|
||||
before do
|
||||
create(:administrator, user: administrator)
|
||||
@@ -157,9 +158,9 @@ shared_examples "documentable" do |documentable_factory_name, documentable_path,
|
||||
documentable_id: documentable.id,
|
||||
from: send(documentable_path, arguments))
|
||||
|
||||
expect(page).to have_content "You can upload up to a maximum of #{documentable.class.max_documents_allowed} documents."
|
||||
expect(page).to have_content "You can upload #{documentable.class.accepted_content_types.join(", ")} files."
|
||||
expect(page).to have_content "You can upload files up to #{bytesToMeg(documentable.class.max_file_size)} MB."
|
||||
expect(page).to have_content "You can upload up to a maximum of #{max_file_size(documentable)} documents."
|
||||
expect(page).to have_content "You can upload #{humanized_accepted_content_types(documentable)} files."
|
||||
expect(page).to have_content "You can upload files up to #{max_file_size(documentable)} MB."
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -3,6 +3,7 @@ shared_examples "document validations" do |documentable_factory|
|
||||
include DocumentablesHelper
|
||||
|
||||
let!(:document) { build(:document, documentable_factory.to_sym) }
|
||||
let!(:documentable) { document.documentable }
|
||||
let!(:maxfilesize) { max_file_size(document.documentable) }
|
||||
let!(:acceptedcontenttypes) { accepted_content_types(document.documentable) }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user