Skip to content

Commit 901d971

Browse files
committed
Fix failing model test
1 parent 49a1085 commit 901d971

File tree

5 files changed

+46
-22
lines changed

5 files changed

+46
-22
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ gem "rexml", ">= 3.3.2"
2020

2121
group :development, :test do
2222
gem "byebug", "~> 11.1", ">= 11.1.3"
23+
gem "database_cleaner-active_record", "1.8.0.beta"
2324
gem "debug", "~> 1.9", ">= 1.9.2", platforms: %i[mri windows]
2425
gem "dotenv", "~> 3.1", ">= 3.1.2"
2526
gem "factory_bot_rails", "~> 6.4", ">= 6.4.3"

Gemfile.lock

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,10 @@ GEM
104104
concurrent-ruby (1.2.3)
105105
connection_pool (2.4.1)
106106
crass (1.0.6)
107+
database_cleaner (1.8.5)
108+
database_cleaner-active_record (1.8.0.beta)
109+
activerecord
110+
database_cleaner (~> 1.8.0.beta)
107111
date (3.3.4)
108112
debug (1.9.2)
109113
irb (~> 1.10)
@@ -357,6 +361,7 @@ DEPENDENCIES
357361
bundler-audit (~> 0.9.1)
358362
byebug (~> 11.1, >= 11.1.3)
359363
colorize (~> 1.1)
364+
database_cleaner-active_record (= 1.8.0.beta)
360365
debug (~> 1.9, >= 1.9.2)
361366
devise (~> 4.9)
362367
dotenv (~> 3.1, >= 3.1.2)

test/factories/job_applications_factory.rb

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,5 @@
2222
trait :hired do
2323
status { "hired" }
2424
end
25-
26-
factory :job_application_phone do
27-
method_of_contact { "phone" }
28-
end
29-
30-
factory :job_application_unique do
31-
company_name { "Unique Company" }
32-
end
33-
34-
factory :job_application_jan_2 do
35-
date_applied { Date.new(2023, 1, 2) }
36-
end
37-
38-
factory :job_application_jan_1 do
39-
date_applied { Date.new(2023, 1, 1) }
40-
end
4125
end
4226
end

test/models/job_application_test.rb

Lines changed: 29 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ def setup
66
end
77

88
test "valid job application" do
9-
assert @job_application.valid?
9+
assert @job_application.valid?, "Job application is not valid. Errors: #{@job_application.errors.full_messages}"
1010
end
1111

1212
test "invalid without date_applied" do
@@ -77,39 +77,62 @@ def setup
7777
end
7878

7979
test "by_method_of_contact scope" do
80+
JobApplication.destroy_all
8081
create(:job_application, method_of_contact: "email")
8182
create(:job_application, :with_website)
8283

84+
puts "Total job applications: #{JobApplication.count}"
85+
puts "Email job applications: #{JobApplication.by_method_of_contact("email").count}"
86+
puts "Internet job applications: #{JobApplication.by_method_of_contact("internet_job_application").count}"
87+
8388
assert_equal 1, JobApplication.by_method_of_contact("email").count
8489
assert_equal 1, JobApplication.by_method_of_contact("internet_job_application").count
8590
end
8691

8792
test "by_position_type scope" do
93+
JobApplication.destroy_all
8894
create(:job_application, position_type: "full_time")
8995
create(:job_application, position_type: "part_time")
9096

97+
puts "Total job applications: #{JobApplication.count}"
98+
puts "Full-time job applications: #{JobApplication.by_position_type("full_time").count}"
99+
puts "Part-time job applications: #{JobApplication.by_position_type("part_time").count}"
100+
91101
assert_equal 1, JobApplication.by_position_type("full_time").count
92102
assert_equal 1, JobApplication.by_position_type("part_time").count
93103
end
94104

95105
test "by_status scope" do
106+
JobApplication.destroy_all
96107
create(:job_application, status: "interviewing")
97-
create(:job_application, :hired)
108+
create(:job_application, status: "hired")
109+
110+
puts "Total job applications: #{JobApplication.count}"
111+
puts "Interviewing job applications: #{JobApplication.by_status("interviewing").count}"
112+
puts "Hired job applications: #{JobApplication.by_status("hired").count}"
98113

99114
assert_equal 1, JobApplication.by_status("interviewing").count
100115
assert_equal 1, JobApplication.by_status("hired").count
101116
end
102117

103118
test "claimed_for_unemployment scope" do
104-
create(:job_application, :claimed)
105-
create(:job_application)
119+
JobApplication.destroy_all
120+
create(:job_application, claimed_for_unemployment: true)
121+
create(:job_application, claimed_for_unemployment: false)
122+
123+
puts "Total job applications: #{JobApplication.count}"
124+
puts "Claimed for unemployment: #{JobApplication.claimed_for_unemployment.count}"
106125

107126
assert_equal 1, JobApplication.claimed_for_unemployment.count
108127
end
109128

110129
test "not_claimed_for_unemployment scope" do
111-
create(:job_application, :claimed)
112-
create(:job_application)
130+
JobApplication.destroy_all
131+
create(:job_application, claimed_for_unemployment: true)
132+
create(:job_application, claimed_for_unemployment: false)
133+
134+
puts "Total job applications: #{JobApplication.count}"
135+
puts "Not claimed for unemployment: #{JobApplication.not_claimed_for_unemployment.count}"
113136

114137
assert_equal 1, JobApplication.not_claimed_for_unemployment.count
115138
end

test/test_helper.rb

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
require "minitest/reporters"
55
require "factory_bot_rails"
66
require "rails-controller-testing"
7+
require "database_cleaner/active_record"
78

89
reporters = []
910

@@ -52,6 +53,16 @@ class TestCase
5253

5354
# Add more helper methods to be used by all tests here...
5455
include FactoryBot::Syntax::Methods
56+
57+
DatabaseCleaner.strategy = :transaction
58+
59+
setup do
60+
DatabaseCleaner.start
61+
end
62+
63+
teardown do
64+
DatabaseCleaner.clean
65+
end
5566
end
5667
end
5768

0 commit comments

Comments
 (0)