Change columns in notifications nonnullable (#6764)
This commit is contained in:
		
				
					committed by
					
						 Eugen Rochko
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							fa310695fa
						
					
				
				
					commit
					b2a4ffd3a9
				
			| @@ -4,12 +4,12 @@ | ||||
| # Table name: notifications | ||||
| # | ||||
| #  id              :integer          not null, primary key | ||||
| #  activity_id     :integer | ||||
| #  activity_type   :string | ||||
| #  activity_id     :integer          not null | ||||
| #  activity_type   :string           not null | ||||
| #  created_at      :datetime         not null | ||||
| #  updated_at      :datetime         not null | ||||
| #  account_id      :integer | ||||
| #  from_account_id :integer | ||||
| #  account_id      :integer          not null | ||||
| #  from_account_id :integer          not null | ||||
| # | ||||
|  | ||||
| class Notification < ApplicationRecord | ||||
|   | ||||
| @@ -0,0 +1,8 @@ | ||||
| class ChangeColumnsInNotificationsNonnullable < ActiveRecord::Migration[5.1] | ||||
|   def change | ||||
|     change_column_null :notifications, :activity_id, false | ||||
|     change_column_null :notifications, :activity_type, false | ||||
|     change_column_null :notifications, :account_id, false | ||||
|     change_column_null :notifications, :from_account_id, false | ||||
|   end | ||||
| end | ||||
							
								
								
									
										10
									
								
								db/schema.rb
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								db/schema.rb
									
									
									
									
									
								
							| @@ -10,7 +10,7 @@ | ||||
| # | ||||
| # It's strongly recommended that you check this file into your version control system. | ||||
|  | ||||
| ActiveRecord::Schema.define(version: 20180304013859) do | ||||
| ActiveRecord::Schema.define(version: 20180310000000) do | ||||
|  | ||||
|   # These are extensions that must be enabled in order to support this database | ||||
|   enable_extension "plpgsql" | ||||
| @@ -274,12 +274,12 @@ ActiveRecord::Schema.define(version: 20180304013859) do | ||||
|   end | ||||
|  | ||||
|   create_table "notifications", force: :cascade do |t| | ||||
|     t.bigint "activity_id" | ||||
|     t.string "activity_type" | ||||
|     t.bigint "activity_id", null: false | ||||
|     t.string "activity_type", null: false | ||||
|     t.datetime "created_at", null: false | ||||
|     t.datetime "updated_at", null: false | ||||
|     t.bigint "account_id" | ||||
|     t.bigint "from_account_id" | ||||
|     t.bigint "account_id", null: false | ||||
|     t.bigint "from_account_id", null: false | ||||
|     t.index ["account_id", "activity_id", "activity_type"], name: "account_activity", unique: true | ||||
|     t.index ["account_id", "id"], name: "index_notifications_on_account_id_and_id", order: { id: :desc } | ||||
|     t.index ["activity_id", "activity_type"], name: "index_notifications_on_activity_id_and_activity_type" | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| Fabricator(:notification) do | ||||
|   activity_id   1 | ||||
|   activity_type 'Favourite' | ||||
|   activity fabricator: [:mention, :status, :follow, :follow_request, :favourite].sample | ||||
|   account | ||||
| end | ||||
|   | ||||
| @@ -6,14 +6,13 @@ RSpec.describe Notification, type: :model do | ||||
|   end | ||||
|  | ||||
|   describe '#target_status' do | ||||
|     let(:notification) { Fabricate(:notification, activity_type: type, activity: activity) } | ||||
|     let(:notification) { Fabricate(:notification, activity: activity) } | ||||
|     let(:status)       { Fabricate(:status) } | ||||
|     let(:reblog)       { Fabricate(:status, reblog: status) } | ||||
|     let(:favourite)    { Fabricate(:favourite, status: status) } | ||||
|     let(:mention)      { Fabricate(:mention, status: status) } | ||||
|  | ||||
|     context 'type is :reblog' do | ||||
|       let(:type)     { :reblog } | ||||
|     context 'activity is reblog' do | ||||
|       let(:activity) { reblog } | ||||
|  | ||||
|       it 'returns status' do | ||||
| @@ -21,7 +20,7 @@ RSpec.describe Notification, type: :model do | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     context 'type is :favourite' do | ||||
|     context 'activity is favourite' do | ||||
|       let(:type)     { :favourite } | ||||
|       let(:activity) { favourite } | ||||
|  | ||||
| @@ -30,8 +29,7 @@ RSpec.describe Notification, type: :model do | ||||
|       end | ||||
|     end | ||||
|  | ||||
|     context 'type is :mention' do | ||||
|       let(:type)     { :mention } | ||||
|     context 'activity is mention' do | ||||
|       let(:activity) { mention } | ||||
|  | ||||
|       it 'returns status' do | ||||
|   | ||||
		Reference in New Issue
	
	Block a user