Introduction
Introduction Statistics Contact Development Disclaimer Help
added rspec model specs for all models with FactoryGirl and proper association …
Log
Files
Refs
README
---
commit 86e1f2eb6b2e170a8ce01ca7503a606475d0b75a
parent c25db678ded165b56d64d94bddd23d98e6f97e0e
Author: zeknox <[email protected]>
Date: Fri, 23 Oct 2015 18:37:45 -0500
added rspec model specs for all models with FactoryGirl and proper association …
Diffstat:
M app/models/project.rb | 3 +--
A spec/factories/call_media.rb | 23 +++++++++++++++++++++++
M spec/factories/calls.rb | 9 ++++++---
A spec/factories/jobs.rb | 34 +++++++++++++++++++++++++++++…
A spec/factories/lines.rb | 20 ++++++++++++++++++++
A spec/factories/projects.rb | 21 +++++++++++++++++++++
A spec/factories/providers.rb | 28 ++++++++++++++++++++++++++++
A spec/factories/settings.rb | 19 +++++++++++++++++++
A spec/factories/signature_fps.rb | 6 ++++++
A spec/factories/signatures.rb | 26 ++++++++++++++++++++++++++
M spec/factories/users.rb | 14 +++++++-------
A spec/models/call_medium_spec.rb | 26 ++++++++++++++++++++++++++
M spec/models/call_spec.rb | 14 +++++++-------
A spec/models/job_spec.rb | 32 +++++++++++++++++++++++++++++…
A spec/models/line_spec.rb | 23 +++++++++++++++++++++++
A spec/models/project_spec.rb | 30 ++++++++++++++++++++++++++++++
A spec/models/provider_spec.rb | 36 +++++++++++++++++++++++++++++…
A spec/models/settings_spec.rb | 20 ++++++++++++++++++++
A spec/models/signature_fp_spec.rb | 5 +++++
A spec/models/signature_spec.rb | 26 ++++++++++++++++++++++++++
M spec/models/user_spec.rb | 11 +++++------
21 files changed, 401 insertions(+), 25 deletions(-)
---
diff --git a/app/models/project.rb b/app/models/project.rb
@@ -14,9 +14,8 @@
class Project < ActiveRecord::Base
-
- validates :name, :uniqueness => true
validates_presence_of :name
+ validates_uniqueness_of :name
attr_accessible :name, :description, :included, :excluded
diff --git a/spec/factories/call_media.rb b/spec/factories/call_media.rb
@@ -0,0 +1,23 @@
+# == Schema Information
+#
+# Table name: call_media
+#
+# id :integer not null, primary key
+# call_id :integer not null
+# project_id :integer not null
+# audio :binary
+# mp3 :binary
+# png_big :binary
+# png_big_dots :binary
+# png_big_freq :binary
+# png_sig :binary
+# png_sig_freq :binary
+#
+
+FactoryGirl.define do
+ factory :call_medium do
+ call
+ project
+ end
+
+end
diff --git a/spec/factories/calls.rb b/spec/factories/calls.rb
@@ -25,8 +25,11 @@
#
FactoryGirl.define do
- factory :call do
- number { Faker::PhoneNumber.phone_number }
- end
+ factory :call do
+ project
+ job
+ provider
+ number { Faker::PhoneNumber.phone_number }
+ end
end
diff --git a/spec/factories/jobs.rb b/spec/factories/jobs.rb
@@ -0,0 +1,34 @@
+# == Schema Information
+#
+# Table name: jobs
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# project_id :integer not null
+# locked_by :string(255)
+# locked_at :datetime
+# started_at :datetime
+# completed_at :datetime
+# created_by :string(255)
+# task :string(255) not null
+# args :binary
+# status :string(255)
+# error :text
+# progress :integer default(0)
+#
+
+FactoryGirl.define do
+ factory :job do
+ project
+ task 'dialer'
+ args "\x04\b{\t:\nrangeI\"\x0F7632458942\x06:\x06ET:\nlinesi\x…
+ status 'submitted'
+ error nil
+ range { Faker::PhoneNumber.phone_number }
+ cid_mask { Faker::PhoneNumber.phone_number }
+ seconds { Faker::Number.between(1, 300) }
+ lines { Faker::Number.between(1, 10000) }
+ end
+
+end
diff --git a/spec/factories/lines.rb b/spec/factories/lines.rb
@@ -0,0 +1,20 @@
+# == Schema Information
+#
+# Table name: lines
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# number :text not null
+# project_id :integer not null
+# line_type :text
+# notes :text
+#
+
+FactoryGirl.define do
+ factory :line do
+ project
+ number { Faker::PhoneNumber.phone_number }
+ end
+
+end
diff --git a/spec/factories/projects.rb b/spec/factories/projects.rb
@@ -0,0 +1,21 @@
+# == Schema Information
+#
+# Table name: projects
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# name :text not null
+# description :text
+# included :text
+# excluded :text
+# created_by :string(255)
+#
+
+FactoryGirl.define do
+ factory :project do
+ name { Faker::Lorem.sentence }
+ description { Faker::Lorem.sentence }
+ end
+
+end
diff --git a/spec/factories/providers.rb b/spec/factories/providers.rb
@@ -0,0 +1,28 @@
+# == Schema Information
+#
+# Table name: providers
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# name :text not null
+# host :text not null
+# port :integer not null
+# user :text
+# pass :text
+# lines :integer default(1), not null
+# enabled :boolean default(TRUE)
+#
+
+FactoryGirl.define do
+ factory :provider do
+ name { Faker::Company.name }
+ host { Faker::Internet.ip_v4_address }
+ port { Faker::Number.between(1, 65535) }
+ user { Faker::Internet.user_name }
+ pass { Faker::Internet.password(10, 20) }
+ lines { Faker::Number.between(1, 254) }
+ enabled true
+ end
+
+end
diff --git a/spec/factories/settings.rb b/spec/factories/settings.rb
@@ -0,0 +1,19 @@
+# == Schema Information
+#
+# Table name: settings
+#
+# id :integer not null, primary key
+# var :string(255) not null
+# value :text
+# thing_id :integer
+# thing_type :string(30)
+# created_at :datetime
+# updated_at :datetime
+#
+
+FactoryGirl.define do
+ factory :setting, :class => 'Settings' do
+ var "CachedStuff"
+ end
+
+end
diff --git a/spec/factories/signature_fps.rb b/spec/factories/signature_fps.rb
@@ -0,0 +1,6 @@
+FactoryGirl.define do
+ factory :signature_fp do
+
+ end
+
+end
diff --git a/spec/factories/signatures.rb b/spec/factories/signatures.rb
@@ -0,0 +1,26 @@
+# == Schema Information
+#
+# Table name: signatures
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# name :text not null
+# source :string(255)
+# description :text
+# category :string(255)
+# line_type :string(255)
+# risk :integer
+#
+
+FactoryGirl.define do
+ factory :signature do
+ name { Faker::Commerce.product_name }
+ source { Faker::PhoneNumber.cell_phone }
+ description { Faker::Lorem.sentence }
+ category { Faker::Lorem.word }
+ line_type { Faker::Lorem.word }
+ risk { Faker::Lorem.word }
+ end
+
+end
diff --git a/spec/factories/users.rb b/spec/factories/users.rb
@@ -24,12 +24,12 @@
#
FactoryGirl.define do
- factory :user do
- login { Faker::Internet.user_name }
- password 'RandomPass'
- password_confirmation 'RandomPass'
- enabled true
- admin true
- end
+ factory :user do
+ login { Faker::Internet.user_name }
+ password 'RandomPass'
+ password_confirmation 'RandomPass'
+ enabled true
+ admin true
+ end
end
diff --git a/spec/models/call_medium_spec.rb b/spec/models/call_medium_spec.rb
@@ -0,0 +1,26 @@
+# == Schema Information
+#
+# Table name: call_media
+#
+# id :integer not null, primary key
+# call_id :integer not null
+# project_id :integer not null
+# audio :binary
+# mp3 :binary
+# png_big :binary
+# png_big_dots :binary
+# png_big_freq :binary
+# png_sig :binary
+# png_sig_freq :binary
+#
+
+require 'rails_helper'
+
+RSpec.describe CallMedium, type: :model do
+ it { should belong_to(:call) }
+ it { should belong_to(:project) }
+
+ it "valid record" do
+ expect(build(:call_medium)).to be_valid
+ end
+end
diff --git a/spec/models/call_spec.rb b/spec/models/call_spec.rb
@@ -27,12 +27,12 @@
require 'rails_helper'
RSpec.describe Call, type: :model do
- it { should belong_to(:project) }
- it { should belong_to(:provider) }
- it { should belong_to(:job) }
- it { should have_one(:call_medium).dependent(:delete) }
+ it { should belong_to(:project) }
+ it { should belong_to(:provider) }
+ it { should belong_to(:job) }
+ it { should have_one(:call_medium).dependent(:delete) }
- it "valid record" do
- expect(build(:call)).to be_valid
- end
+ it "valid record" do
+ expect(build(:call)).to be_valid
+ end
end
diff --git a/spec/models/job_spec.rb b/spec/models/job_spec.rb
@@ -0,0 +1,32 @@
+# == Schema Information
+#
+# Table name: jobs
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# project_id :integer not null
+# locked_by :string(255)
+# locked_at :datetime
+# started_at :datetime
+# completed_at :datetime
+# created_by :string(255)
+# task :string(255) not null
+# args :binary
+# status :string(255)
+# error :text
+# progress :integer default(0)
+#
+
+require 'rails_helper'
+
+RSpec.describe Job, type: :model do
+ it { should belong_to(:project) }
+ it { should have_many(:calls) }
+
+ it { should validate_presence_of(:project_id) }
+
+ it "valid record" do
+ expect(build(:job)).to be_valid
+ end
+end
diff --git a/spec/models/line_spec.rb b/spec/models/line_spec.rb
@@ -0,0 +1,23 @@
+# == Schema Information
+#
+# Table name: lines
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# number :text not null
+# project_id :integer not null
+# line_type :text
+# notes :text
+#
+
+require 'rails_helper'
+
+RSpec.describe Line, type: :model do
+ it { should belong_to(:project) }
+ it { should have_many(:line_attributes).dependent(:delete_all) }
+
+ it "valid record" do
+ expect(build(:line)).to be_valid
+ end
+end
diff --git a/spec/models/project_spec.rb b/spec/models/project_spec.rb
@@ -0,0 +1,30 @@
+# == Schema Information
+#
+# Table name: projects
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# name :text not null
+# description :text
+# included :text
+# excluded :text
+# created_by :string(255)
+#
+
+require 'rails_helper'
+
+RSpec.describe Project, type: :model do
+ it { should have_many(:lines).dependent(:delete_all) }
+ it { should have_many(:line_attributes).dependent(:delete_all) }
+ it { should have_many(:calls).dependent(:delete_all) }
+ it { should have_many(:call_media).dependent(:delete_all) }
+ it { should have_many(:jobs).dependent(:delete_all) }
+
+ it { should validate_presence_of(:name) }
+ it { should validate_uniqueness_of(:name) }
+
+ it "valid record" do
+ expect(build(:project)).to be_valid
+ end
+end
diff --git a/spec/models/provider_spec.rb b/spec/models/provider_spec.rb
@@ -0,0 +1,36 @@
+# == Schema Information
+#
+# Table name: providers
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# name :text not null
+# host :text not null
+# port :integer not null
+# user :text
+# pass :text
+# lines :integer default(1), not null
+# enabled :boolean default(TRUE)
+#
+
+require 'rails_helper'
+
+RSpec.describe Provider, type: :model do
+ ## TODO determine if association is unecessary
+ # the DialResult model does not exist
+ #it { should have_many(:dial_results) }
+
+ it { should validate_presence_of(:name) }
+ it { should validate_presence_of(:host) }
+ it { should validate_presence_of(:port) }
+ it { should validate_presence_of(:user) }
+ it { should validate_presence_of(:pass) }
+ it { should validate_presence_of(:lines) }
+ it { should validate_numericality_of(:port).is_less_than(65536).is_gre…
+ it { should validate_numericality_of(:lines).is_less_than(255).is_grea…
+
+ it "valid record" do
+ expect(build(:provider)).to be_valid
+ end
+end
diff --git a/spec/models/settings_spec.rb b/spec/models/settings_spec.rb
@@ -0,0 +1,20 @@
+# == Schema Information
+#
+# Table name: settings
+#
+# id :integer not null, primary key
+# var :string(255) not null
+# value :text
+# thing_id :integer
+# thing_type :string(30)
+# created_at :datetime
+# updated_at :datetime
+#
+
+require 'rails_helper'
+
+RSpec.describe Settings, type: :model do
+ it "valid record" do
+ expect(build(:setting)).to be_valid
+ end
+end
diff --git a/spec/models/signature_fp_spec.rb b/spec/models/signature_fp_spec.rb
@@ -0,0 +1,5 @@
+require 'rails_helper'
+
+RSpec.describe SignatureFp, type: :model do
+
+end
diff --git a/spec/models/signature_spec.rb b/spec/models/signature_spec.rb
@@ -0,0 +1,26 @@
+# == Schema Information
+#
+# Table name: signatures
+#
+# id :integer not null, primary key
+# created_at :datetime
+# updated_at :datetime
+# name :text not null
+# source :string(255)
+# description :text
+# category :string(255)
+# line_type :string(255)
+# risk :integer
+#
+
+require 'rails_helper'
+
+RSpec.describe Signature, type: :model do
+ ## TODO association may not be needed
+ # causes crash: PG::UndefinedTable: ERROR: relation "signature_fps" …
+ #it { should have_many(:signature_fps) }
+
+ it "valid record" do
+ expect(build(:signature)).to be_valid
+ end
+end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
@@ -26,11 +26,10 @@
require 'rails_helper'
RSpec.describe User, type: :model do
- it { should validate_length_of(:password).is_at_least(8) }
- it { should validate_length_of(:password_confirmation).is_at_least(8) }
+ it { should validate_length_of(:password).is_at_least(8) }
+ it { should validate_length_of(:password_confirmation).is_at_least(8) }
- it 'valid record' do
- user = build(:user)
- expect(user).to be_valid
- end
+ it 'valid record' do
+ expect(build(:user)).to be_valid
+ end
end
You are viewing proxied material from jay.scot. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.