diff --git a/lib/administrate/resource_resolver.rb b/lib/administrate/resource_resolver.rb index 345bc47740..4cbc7d73eb 100644 --- a/lib/administrate/resource_resolver.rb +++ b/lib/administrate/resource_resolver.rb @@ -21,7 +21,7 @@ def resource_name end def resource_title - model_path_parts.join(" ") + resource_class.model_name.human end private diff --git a/spec/features/edit_page_spec.rb b/spec/features/edit_page_spec.rb index cc97879c13..d391daa829 100644 --- a/spec/features/edit_page_spec.rb +++ b/spec/features/edit_page_spec.rb @@ -65,13 +65,23 @@ new_email = "example@example.com" customer = create(:customer) - visit edit_admin_customer_path(customer) - fill_in "Name", with: new_name - fill_in "Email", with: new_email - click_on "Update Customer" + translations = { + activerecord: { + models: { + customer: "Custom name", + }, + }, + } + + with_translations(:en, translations) do + visit edit_admin_customer_path(customer) + fill_in "Name", with: new_name + fill_in "Email", with: new_email + click_on "Update Custom name" + end expect(page).to have_text(new_name) expect(page).to have_text(new_email) - expect(page).to have_flash("Customer was successfully updated.") + expect(page).to have_flash("Custom name was successfully updated.") end end diff --git a/spec/features/log_entries_form_spec.rb b/spec/features/log_entries_form_spec.rb index 88705222a9..7cb2ce8f57 100644 --- a/spec/features/log_entries_form_spec.rb +++ b/spec/features/log_entries_form_spec.rb @@ -11,7 +11,7 @@ expect(page).to have_link(customer.name) expect(page).to have_flash( - t("administrate.controller.create.success", resource: "LogEntry"), + t("administrate.controller.create.success", resource: "Log entry"), ) end diff --git a/spec/features/log_entries_index_spec.rb b/spec/features/log_entries_index_spec.rb index 382fce4d68..9802fe5cfd 100644 --- a/spec/features/log_entries_index_spec.rb +++ b/spec/features/log_entries_index_spec.rb @@ -56,7 +56,7 @@ click_on t("administrate.actions.destroy") end expect(page).to have_flash( - t("administrate.controller.destroy.success", resource: "LogEntry"), + t("administrate.controller.destroy.success", resource: "Log entry"), ) end end diff --git a/spec/lib/administrate/resource_resolver_spec.rb b/spec/lib/administrate/resource_resolver_spec.rb index 5328132179..d4e658d576 100644 --- a/spec/lib/administrate/resource_resolver_spec.rb +++ b/spec/lib/administrate/resource_resolver_spec.rb @@ -1,7 +1,4 @@ -require "spec_helper" -require "active_support/core_ext/string/inflections" -require "support/constant_helpers" -require "administrate/resource_resolver" +require "rails_helper" describe Administrate::ResourceResolver do describe "#dashboard_class" do @@ -62,15 +59,35 @@ module Library; class Book; end; end describe "#resource_title" do it "handles global-namepsace models" do + class User < ApplicationRecord; self.abstract_class = true; end resolver = Administrate::ResourceResolver.new("admin/users") expect(resolver.resource_title).to eq("User") + ensure + remove_constants :User end it "handles namespaced models" do + module Library + class Book < ApplicationRecord; self.abstract_class = true; end + end resolver = Administrate::ResourceResolver.new("admin/library/books") - expect(resolver.resource_title).to eq("Library Book") + expect(resolver.resource_title).to eq("Book") + + translations = { + activerecord: { + models: { + "library/book": "Library Book", + }, + }, + } + + with_translations(:en, translations) do + expect(resolver.resource_title).to eq("Library Book") + end + ensure + remove_constants :Library end end