Files
danbooru/test/functional/pool_versions_controller_test.rb
evazion 94ae10b1a6 tests: fix post and pool version tests helpers.
* Fix the pool version SQS service to always be mocked before every
  test. Before we had to manually set it up before every test dealing
  with pool versions.

* Fix it so that we reconnect to the post/pool version databases before
  every test. Before using $ARCHIVE_DATABASE_URL to set the database url
  failed because environment variables weren't loaded by dotenv yet when
  connections were first established.
2020-03-21 19:28:10 -05:00

50 lines
1.5 KiB
Ruby

require 'test_helper'
class PoolVersionsControllerTest < ActionDispatch::IntegrationTest
context "The pool versions controller" do
setup do
@user = create(:user)
end
context "index action" do
setup do
@pool = as(@user) { create(:pool) }
@user_2 = create(:user)
@user_3 = create(:user)
as(@user_2) { @pool.update(post_ids: "1 2") }
as(@user_3) { @pool.update(post_ids: "1 2 3 4") }
@versions = @pool.versions
end
should "list all versions" do
get pool_versions_path
assert_response :success
assert_select "#pool-version-#{@versions[0].id}"
assert_select "#pool-version-#{@versions[1].id}"
assert_select "#pool-version-#{@versions[2].id}"
end
should "list all versions that match the search criteria" do
get pool_versions_path, params: {:search => {:updater_id => @user_2.id}}
assert_response :success
assert_select "#pool-version-#{@versions[0].id}", false
assert_select "#pool-version-#{@versions[1].id}"
assert_select "#pool-version-#{@versions[2].id}", false
end
end
context "diff action" do
should "render" do
@post = create(:post)
@pool = as (@user) { create(:pool) }
as (@user) { @pool.update(name: "blah", description: "desc", post_ids: [@post.id]) }
get diff_pool_version_path(@pool.versions.last.id)
assert_response :success
end
end
end
end