test/oprah/presenter_test.rb in oprah-0.1.2 vs test/oprah/presenter_test.rb in oprah-0.1.3
- old
+ new
@@ -8,10 +8,36 @@
assert_kind_of Oprah::Cache, Presenter.cache
assert_equal Presenter.cache, Presenter.cache
assert_equal UserPresenter.cache, Presenter.cache
end
+ def test_present
+ assert_presented present(User.new)
+ end
+
+ def test_present_no_matching_presenter
+ object = Object.new
+ presented = present(object)
+
+ refute_presented presented
+ assert_equal presented, object
+ end
+
+ def test_present_only
+ presenter = present(User.new, only: UserPresenter)
+
+ assert_kind_of UserPresenter, presenter
+ refute_kind_of EntityPresenter, presenter
+
+ classes = [UserPresenter, EntityPresenter, CommentPresenter]
+ presenter = present(User.new, only: classes)
+
+ assert_kind_of UserPresenter, presenter
+ assert_kind_of EntityPresenter, presenter
+ refute_kind_of CommentPresenter, presenter
+ end
+
def test_present_many
present_many([User.new, User.new]).each do |presenter|
assert_equal "Foo Bar", presenter.name
end
end
@@ -23,9 +49,41 @@
project.comments.each do |comment|
assert_kind_of Comment, comment
assert_kind_of CommentPresenter, comment
end
+ end
+
+ def test_present_from_instance
+ view_context = Object.new
+ presenter = present(User.new, view_context: view_context)
+ presented = presenter.present(User.new)
+
+ assert_equal view_context.object_id, presented.view_context.object_id
+ end
+
+ def test_present_many_from_instance
+ view_context = Object.new
+ presenter = present(User.new, view_context: view_context)
+ presented = presenter.present_many([User.new]).first
+
+ assert_equal view_context.object_id, presented.view_context.object_id
+ end
+
+ def test_present_from_instance_custom_view_context
+ view_context = Object.new
+ presenter = present(User.new, view_context: view_context)
+ presented = presenter.present(User.new, view_context: :ok)
+
+ assert_equal :ok, presented.view_context
+ end
+
+ def test_present_many_from_instance_custom_view_context
+ view_context = Object.new
+ presenter = present(User.new, view_context: view_context)
+ presented = presenter.present_many([User.new], view_context: :ok).first
+
+ assert_equal :ok, presented.view_context
end
def test_presents_one
project = present(Project.new)
owner = project.owner