about summary refs log tree commit diff
diff options
context:
space:
mode:
authorabcang <abcang1015@gmail.com>2017-09-03 03:45:42 +0900
committerEugen Rochko <eugen@zeonfederated.com>2017-09-02 20:45:42 +0200
commit6ec1aa372dca28c476749666d02e1807eb05c42e (patch)
tree35744e09f30a249df55dc74b6d82eafb7531516a
parent2c3544eedd52ffc29dd425042791995cd270cd7e (diff)
Validate data of Imports (#4782)
-rw-r--r--app/models/import.rb1
-rw-r--r--spec/models/import_spec.rb19
2 files changed, 20 insertions, 0 deletions
diff --git a/app/models/import.rb b/app/models/import.rb
index 815e02589..4656c3af6 100644
--- a/app/models/import.rb
+++ b/app/models/import.rb
@@ -28,4 +28,5 @@ class Import < ApplicationRecord
 
   has_attached_file :data, url: '/system/:hash.:extension', hash_secret: ENV['PAPERCLIP_SECRET']
   validates_attachment_content_type :data, content_type: FILE_TYPES
+  validates_attachment_presence :data
 end
diff --git a/spec/models/import_spec.rb b/spec/models/import_spec.rb
index fa52077cd..321761166 100644
--- a/spec/models/import_spec.rb
+++ b/spec/models/import_spec.rb
@@ -1,5 +1,24 @@
 require 'rails_helper'
 
 RSpec.describe Import, type: :model do
+  let (:account) { Fabricate(:account) }
+  let (:type) { 'following' }
+  let (:data) { attachment_fixture('imports.txt') }
 
+  describe 'validations' do
+    it 'has a valid parameters' do
+      import = Import.create(account: account, type: type, data: data)
+      expect(import).to be_valid
+    end
+
+    it 'is invalid without an type' do
+      import = Import.create(account: account, data: data)
+      expect(import).to model_have_error_on_field(:type)
+    end
+
+    it 'is invalid without a data' do
+      import = Import.create(account: account, type: type)
+      expect(import).to model_have_error_on_field(:data)
+    end
+  end
 end