From 0818a3057b0a91e422158d828026c941b4e10622 Mon Sep 17 00:00:00 2001 From: erdgeist Date: Thu, 25 Jun 2026 17:51:45 +0200 Subject: Rails 5.2 test updates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Rename test/functional → test/controllers, test/unit → test/models - Remove test/performance/browsing_test.rb (performance_test_help removed) - Fix use_transactional_fixtures → use_transactional_tests - Remove use_instantiated_fixtures (removed in Rails 5) - Fix ActiveRecord::Fixtures → FixtureSet - Fix controller test params syntax: add params: {} wrapper throughout - Fix assert_select targets for aggregator test - Fix test_update_a_draft_with_changing_the_template: draft → head - Add test_node.reload after children.create! (awesome_nested_set bug) - Add before/after count pattern for create tests (transactional isolation) - Known failures: 5 tests affected by Rails 5 transactional test isolation --- test/controllers/revisions_controller_test.rb | 62 +++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 test/controllers/revisions_controller_test.rb (limited to 'test/controllers/revisions_controller_test.rb') diff --git a/test/controllers/revisions_controller_test.rb b/test/controllers/revisions_controller_test.rb new file mode 100644 index 0000000..385e458 --- /dev/null +++ b/test/controllers/revisions_controller_test.rb @@ -0,0 +1,62 @@ +require 'test_helper' + +class RevisionsControllerTest < ActionController::TestCase + + def setup + Node.root.descendants.destroy_all + @user = User.find_by_login("aaron") + @node = Node.root.children.create!( :slug => "version_me" ) + + draft = @node.draft + draft.body = "first" + @node.publish_draft! + @node.find_or_create_draft @user + draft = @node.draft + draft.update_attributes(:body => "second") + @node.publish_draft! + end + + test "setup" do + assert_equal 2, Node.count + assert_equal 2, @node.pages.count + assert_equal ["first", "second"], @node.pages.map {|p| p.body} + end + + test "get list of revisions for a given node" do + login_as :quentin + get :index, params: { :node_id => @node.id } + assert_response :success + assert_select ".revision", 2 + end + + test "showing one revision" do + login_as :quentin + get :show, params: { :node_id => @node.id, :id => @node.pages.last.id } + assert_response :success + assert_select "strong", "Body" + assert_select "td", {:count => 1, :text => "second"} + end + + test "diffing two revisions" do + login_as :quentin + post( + :diff, params: { + :node_id => @node.id, + :start_revision => @node.pages.first.revision, + :end_revision => @node.pages.last.revision + } + ) + assert_response :success + end + + test "restoring a revision" do + assert_equal "second", @node.head.body + + login_as :aaron + put( :restore, params: { :node_id => @node.id, :id => @node.pages.first.id } ) + + @node.reload + assert_equal @node.head, @node.pages.first + assert_equal "first", @node.head.reload.body + end +end -- cgit v1.3