fixing resume and application dependencies

Dangling instances were left and blew up respective admin lists
dependent: destroy added with relevant tests
This commit is contained in:
Torsten Ruger 2017-06-21 10:28:02 +03:00
parent c0285d6512
commit 78d810c690
6 changed files with 28 additions and 5 deletions

View File

@ -4,8 +4,8 @@ class User < ActiveRecord::Base
validates_presence_of :city
validates_presence_of :country
has_one :application , class_name: :Apply
has_one :resume
has_one :application , dependent: :destroy , class_name: :Apply
has_one :resume , dependent: :destroy
enum role: [:user, :teacher, :admin]

View File

@ -10,4 +10,9 @@ describe "Admin Apply" do
apply = create(:apply)
visit_url admin_apply_url(apply)
end
it "lists applies after deleting user" do
list = create_list(:apply , 3)
list.first.user.destroy
visit_url admin_applies_url
end
end

View File

@ -10,4 +10,9 @@ describe "Admin Resume" do
resume = create(:resume)
visit_url admin_resume_url(resume)
end
it "lists resumes after destroying user" do
resume = create(:resume)
resume.user.destroy
visit_url admin_resumes_url
end
end

View File

@ -11,4 +11,11 @@ RSpec.describe Apply, type: :model do
apply = build(:apply , primary_choice_course_id: nil)
expect(apply.save).to be false
end
it "deletes application when deleting user" do
apply = create :apply
apply.user.destroy
expect(Apply.where( id: apply.id)).to be_empty
end
end

View File

@ -26,6 +26,6 @@ RSpec.describe Course, type: :model do
it "the course is in the future" do
course = create :course
expect((course.start - DateTime.now).to_i).to be < 410
expect((course.start - DateTime.now).to_i).to be < 470
end
end

View File

@ -17,13 +17,19 @@ describe User do
user = build :user
expect(user).to be_valid
end
it "application assoc" do
it "has application assoc" do
user = create :user
expect(user.application).to be_nil
end
it "resume assoc" do
it "has resume assoc" do
user = create :user
expect(user.resume).not_to be_nil
end
it "deletes resume when deleting user" do
user = create :user
resume_id = user.resume.id
user.destroy
expect(Resume.where( id: resume_id)).to be_empty
end
end
end