64 lines
1.8 KiB
Ruby
64 lines
1.8 KiB
Ruby
require "test_helper"
|
|
|
|
class CollectionsControllerTest < ActionDispatch::IntegrationTest
|
|
setup do
|
|
sign_in_as :kevin
|
|
end
|
|
|
|
test "new" do
|
|
get new_collection_url
|
|
assert_response :success
|
|
end
|
|
|
|
test "create" do
|
|
assert_difference -> { Collection.count }, +1 do
|
|
post collections_url, params: { collection: { name: "Remodel Punch List" } }
|
|
end
|
|
|
|
collection = Collection.last
|
|
assert_redirected_to cards_path(collection_ids: [ collection ])
|
|
assert_includes collection.users, users(:kevin)
|
|
assert_equal "Remodel Punch List", collection.name
|
|
end
|
|
|
|
test "edit" do
|
|
get edit_collection_url(collections(:writebook))
|
|
assert_response :success
|
|
end
|
|
|
|
test "update" do
|
|
patch collection_url(collections(:writebook)), params: {
|
|
collection: {
|
|
name: "Writebook bugs",
|
|
all_access: false
|
|
},
|
|
user_ids: users(:david, :jz).pluck(:id)
|
|
}
|
|
|
|
assert_redirected_to cards_path(collection_ids: [ collections(:writebook) ])
|
|
assert_equal "Writebook bugs", collections(:writebook).reload.name
|
|
assert_equal users(:david, :jz).sort, collections(:writebook).users.sort
|
|
assert_not collections(:writebook).all_access?
|
|
end
|
|
|
|
test "update all access" do
|
|
collection = Current.set(session: sessions(:kevin)) do
|
|
Collection.create! name: "New collection", all_access: false
|
|
end
|
|
assert_equal [ users(:kevin) ], collection.users
|
|
|
|
patch collection_url(collection), params: { collection: { name: "Bugs", all_access: true } }
|
|
|
|
assert_redirected_to cards_path(collection_ids: [ collection ])
|
|
assert collection.reload.all_access?
|
|
assert_equal User.all, collection.users
|
|
end
|
|
|
|
test "destroy" do
|
|
assert_difference -> { Collection.count }, -1 do
|
|
delete collection_url(collections(:writebook))
|
|
assert_redirected_to root_url
|
|
end
|
|
end
|
|
end
|