# frozen_string_literal: true # == Schema Information # # Table name: user_links # # id :integer not null, primary key # aasm_state :string not null # contacted_at :datetime # hostname :string # next_check_at :datetime # path :string # public :boolean default(TRUE), not null # uri :string not null # verification_code :string not null # created_at :datetime not null # updated_at :datetime not null # contacted_by_user_id :integer # tag_id :integer # user_id :integer not null # verified_by_user_id :integer # # Indexes # # index_user_links_on_aasm_state (aasm_state) # index_user_links_on_contacted_by_user_id (contacted_by_user_id) # index_user_links_on_next_check_at (next_check_at) # index_user_links_on_tag_id (tag_id) # index_user_links_on_uri_tag_id_user_id (uri,tag_id,user_id) UNIQUE WHERE ((aasm_state)::text <> 'rejected'::text) # index_user_links_on_user_id (user_id) # index_user_links_on_verified_by_user_id (verified_by_user_id) # # Foreign Keys # # fk_rails_... (contacted_by_user_id => users.id) ON DELETE => nullify ON UPDATE => cascade # fk_rails_... (tag_id => tags.id) ON DELETE => cascade ON UPDATE => cascade # fk_rails_... (user_id => users.id) ON DELETE => cascade ON UPDATE => cascade # fk_rails_... (verified_by_user_id => users.id) ON DELETE => nullify ON UPDATE => cascade # require 'test_helper' class UserLinkTest < ActiveSupport::TestCase setup do @user_link = create(:user_link) end test 'should transition state properly' do assert_equal 'unverified', @user_link.aasm_state @user_link.mark_link_verified! assert_equal 'link_verified', @user_link.aasm_state @user_link.mark_contacted! assert_equal 'contacted', @user_link.aasm_state @user_link.reject! assert_equal 'rejected', @user_link.aasm_state @user_link.mark_verified! assert_equal 'verified', @user_link.aasm_state end end