Files
fizzy/test/models/board/accessible_test.rb
T
2025-11-17 09:12:40 -05:00

44 lines
1.5 KiB
Ruby

require "test_helper"
class Board::AccessibleTest < ActiveSupport::TestCase
test "revising access" do
boards(:writebook).update! all_access: false
boards(:writebook).accesses.revise granted: users(:david, :jz), revoked: users(:kevin)
assert_equal users(:david, :jz).to_set, boards(:writebook).users.to_set
boards(:writebook).accesses.grant_to users(:kevin)
assert_includes boards(:writebook).users.reload, users(:kevin)
boards(:writebook).accesses.revoke_from users(:kevin)
assert_not_includes boards(:writebook).users.reload, users(:kevin)
end
test "grants access to everyone after creation" do
board = Current.set(session: sessions(:david), user: users(:david)) do
Board.create! name: "New board", all_access: true
end
assert_equal accounts("37s").users.active.sort, board.users.sort
end
test "grants access to everyone after update" do
board = Current.set(session: sessions(:david), user: users(:david)) do
Board.create! name: "New board"
end
assert_equal [ users(:david) ], board.users
board.update! all_access: true
assert_equal accounts("37s").users.active.sort, board.users.reload.sort
end
test "board watchers" do
boards(:writebook).access_for(users(:kevin)).watching!
assert_includes boards(:writebook).watchers, users(:kevin)
boards(:writebook).access_for(users(:kevin)).access_only!
assert_not_includes boards(:writebook).reload.watchers, users(:kevin)
end
# NOTE: The tests for clearing inaccessible data are in +AccessTest+
end