diff --git a/app/models/user.rb b/app/models/user.rb index d290365..574c6e4 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -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] diff --git a/spec/features/admin/applies_spec.rb b/spec/features/admin/applies_spec.rb index 4b0c319..482e9bb 100644 --- a/spec/features/admin/applies_spec.rb +++ b/spec/features/admin/applies_spec.rb @@ -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 diff --git a/spec/features/admin/resumes_spec.rb b/spec/features/admin/resumes_spec.rb index b2fcb3c..2ead2e1 100644 --- a/spec/features/admin/resumes_spec.rb +++ b/spec/features/admin/resumes_spec.rb @@ -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 diff --git a/spec/models/apply_spec.rb b/spec/models/apply_spec.rb index 5954216..46c14e1 100644 --- a/spec/models/apply_spec.rb +++ b/spec/models/apply_spec.rb @@ -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 diff --git a/spec/models/course_spec.rb b/spec/models/course_spec.rb index fe06353..d79275a 100644 --- a/spec/models/course_spec.rb +++ b/spec/models/course_spec.rb @@ -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 diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index 485c20c..b1fb9b0 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -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