summaryrefslogtreecommitdiff
path: root/test/models/user_link_test.rb
blob: 3008ee3c4181514ce3ec8f5d8ac2272fd438b982 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# 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