Commit 981f835406be2c438054d093b4b0446c775db521

Authored by Leandro Santos
1 parent e8f4fd2b

add primary key to article follower table to fox has many through association

db/migrate/20160309122141_add_id_to_article_follower.rb 0 → 100644
... ... @@ -0,0 +1,5 @@
  1 +class AddIdToArticleFollower < ActiveRecord::Migration
  2 + def change
  3 + add_column :article_followers, :id, :primary_key
  4 + end
  5 +end
... ...
db/schema.rb
... ... @@ -11,7 +11,7 @@
11 11 #
12 12 # It's strongly recommended that you check this file into your version control system.
13 13  
14   -ActiveRecord::Schema.define(version: 20160224132937) do
  14 +ActiveRecord::Schema.define(version: 20160309122141) do
15 15  
16 16 # These are extensions that must be enabled in order to support this database
17 17 enable_extension "plpgsql"
... ... @@ -51,7 +51,7 @@ ActiveRecord::Schema.define(version: 20160224132937) do
51 51 add_index "action_tracker_notifications", ["profile_id", "action_tracker_id"], name: "index_action_tracker_notif_on_prof_id_act_tracker_id", unique: true, using: :btree
52 52 add_index "action_tracker_notifications", ["profile_id"], name: "index_action_tracker_notifications_on_profile_id", using: :btree
53 53  
54   - create_table "article_followers", id: false, force: :cascade do |t|
  54 + create_table "article_followers", force: :cascade do |t|
55 55 t.integer "person_id"
56 56 t.integer "article_id"
57 57 t.datetime "since"
... ...
test/unit/article_test.rb
... ... @@ -2252,4 +2252,22 @@ class ArticleTest &lt; ActiveSupport::TestCase
2252 2252 assert_equal "/#{a2.path}", a2.full_path
2253 2253 end
2254 2254  
  2255 + should "increment followers count when a person follow an article" do
  2256 + a = fast_create(Article)
  2257 + p = fast_create(Person)
  2258 + assert_difference "a.reload.followers_count" do
  2259 + a.person_followers << p
  2260 + end
  2261 + end
  2262 +
  2263 + should "decrement followers count when a person unfollow an article" do
  2264 + p = fast_create(Person)
  2265 + a = fast_create(Article, :profile_id => p)
  2266 + a.person_followers << p
  2267 + assert_difference "a.reload.followers_count", -1 do
  2268 + a.person_followers.destroy_all
  2269 + end
  2270 + end
  2271 +
  2272 +
2255 2273 end
... ...