# frozen_string_literal: true require "test_helper" class TableInviteTest < ActiveSupport::TestCase test "accept! accepts the invite" do invite = table_invites(:unaccepted) user = User.find_by(email: invite.email) assert_not_includes user.tables, invite.table assert_nil invite.accepted_at invite.accept! assert_not_nil invite.accepted_at assert_includes user.tables, invite.table end test "decline! declines the invite" do invite = table_invites(:unaccepted) assert_nil invite.declined_at invite.decline! assert_not_nil invite.declined_at end test "cannot accept a declined invitation" do assert_raises do table_invites(:declined).accept! end end test "cannot decline an accepted invitation" do assert_raises do table_invites(:one).decline! end end test "responded? is true for both accepted and declined invites" do assert table_invites(:one).responded? assert table_invites(:declined).responded? end end