Merge branch 'main' into 20831-user-table-locks
[arvados.git] / services / api / test / unit / link_test.rb
index 626f470c02b33641459b06f109f31e04f4d267e2..b9806486adb381596b024a2ff2258d2d91b164b1 100644 (file)
@@ -109,7 +109,7 @@ class LinkTest < ActiveSupport::TestCase
 
   test "updating permission causes any conflicting links to be deleted" do
     link1, link2 = create_overlapping_permissions(['can_read', 'can_manage'])
-    Link.find_by_uuid(link2).update_attributes!(name: 'can_write')
+    Link.find_by_uuid(link2).update!(name: 'can_write')
     assert_empty Link.where(uuid: link1)
   end
 
@@ -118,4 +118,17 @@ class LinkTest < ActiveSupport::TestCase
     Link.find_by_uuid(wlink).destroy
     assert_empty Link.where(uuid: rlink)
   end
+
+  test "updating login permission causes any conflicting links to be deleted" do
+    link1, link2 = create_overlapping_permissions(['can_login', 'can_login'], {properties: {username: 'foo1'}})
+    Link.find_by_uuid(link1).update!(properties: {'username' => 'foo2'})
+    Link.find_by_uuid(link2).update!(properties: {'username' => 'foo2'})
+    assert_empty Link.where(uuid: link1)
+  end
+
+  test "deleting login permission causes any conflicting links to be deleted" do
+    link1, link2 = create_overlapping_permissions(['can_login', 'can_login'], {properties: {username: 'foo1'}})
+    Link.find_by_uuid(link1).destroy
+    assert_empty Link.where(uuid: link2)
+  end
 end