Merge pull request #103 from basecamp/jose/fix-bucket-creator-access

Test that bucket creators are given access
This commit is contained in:
Jose Farias
2024-10-09 13:19:58 -04:00
committed by GitHub
3 changed files with 43 additions and 9 deletions
+7 -8
View File
@@ -10,18 +10,17 @@ module Bucket::Accessible
end
end
private
def grant_to(users)
Access.insert_all Array(users).collect { |user| { bucket_id: proxy_association.owner.id, user_id: user.id } }
end
def grant_to(users)
Access.insert_all Array(users).collect { |user| { bucket_id: proxy_association.owner.id, user_id: user.id } }
end
def revoke_from(users)
destroy_by user: users
end
def revoke_from(users)
destroy_by user: users
end
end
has_many :users, through: :accesses
after_create -> { accesses.grant_to(creator) }
after_create -> { accesses.grant_to creator }
end
end
+30 -1
View File
@@ -5,6 +5,27 @@ class BucketsControllerTest < ActionDispatch::IntegrationTest
sign_in_as :kevin
end
test "index" do
get buckets_url
assert_response :success
end
test "new" do
get new_bucket_url
assert_response :success
end
test "create" do
assert_difference -> { Bucket.count }, +1 do
post buckets_url, params: { bucket: { name: "Remodel Punch List" } }
end
bucket = Bucket.last
assert_redirected_to bucket_bubbles_url(bucket)
assert_includes bucket.users, users(:kevin)
assert_equal "Remodel Punch List", bucket.name
end
test "edit" do
get edit_bucket_url(buckets(:writebook))
assert_response :success
@@ -12,8 +33,16 @@ class BucketsControllerTest < ActionDispatch::IntegrationTest
test "update" do
patch bucket_url(buckets(:writebook)), params: { bucket: { name: "Writebook bugs" }, user_ids: users(:david, :jz).pluck(:id) }
assert_redirected_to bucket_bubbles_url(buckets(:writebook))
assert_equal users(:david, :jz), buckets(:writebook).users
assert_equal "Writebook bugs", buckets(:writebook).reload.name
assert_equal users(:david, :jz), buckets(:writebook).users
end
test "destroy" do
assert_difference -> { Bucket.count }, -1 do
delete bucket_url(buckets(:writebook))
assert_redirected_to buckets_url
end
end
end
+6
View File
@@ -4,5 +4,11 @@ class BucketTest < ActiveSupport::TestCase
test "revising access" do
buckets(:writebook).accesses.revise granted: users(:david, :jz), revoked: users(:kevin)
assert_equal users(:david, :jz), buckets(:writebook).users
buckets(:writebook).accesses.grant_to users(:kevin)
assert_includes buckets(:writebook).users.reload, users(:kevin)
buckets(:writebook).accesses.revoke_from users(:kevin)
assert_not_includes buckets(:writebook).users.reload, users(:kevin)
end
end