Move tests to concerned modules.

Commit
dafe1aaa54d41999b4c81f4904ae1f0e7cc9de11
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
models/nutrient-measurement.rkt
index 5b5f93d2..913e4027 100644..100644
@@ -174,3 +174,67 @@
174 174 (define (delete-nutrient-measurement! nutrient-measurement)
175 175 (define id (nutrient-measurement-id nutrient-measurement))
176 176 (query-exec (current-conn) (delete #:from nutrient_measurements #:where (= id ,id))))
177 Added:
178 Added: (module+ test
179 Added: (require rackunit
180 Added: rackunit/text-ui
181 Added: "../db/conn.rkt"
182 Added: "../db/migrations.rkt"
183 Added: "../models/nutrient.rkt")
184 Added:
185 Added: (define measurement-date "2025-09-01")
186 Added:
187 Added: (run-tests
188 Added: (test-suite "Nutrient measurement model"
189 Added: #:before (λ ()
190 Added: (connect! #:path 'memory)
191 Added: ;; (connect! #:path "test.sqlite3")
192 Added: (migrate-all!)
193 Added: (create-nutrient! "Nitrogen" "" "N")
194 Added: (create-nutrient! "Phosphorus" "" "P")
195 Added: (create-nutrient! "Potassium" "" "K"))
196 Added: #:after (λ () (disconnect!))
197 Added:
198 Added: (test-case "Create measurement with date and values"
199 Added: (define nitrogen (get-nutrient #:name "Nitrogen"))
200 Added: (define phosphorus (get-nutrient #:name "Phosphorus"))
201 Added: (create-nutrient-measurement! measurement-date (hash nitrogen 12.3 phosphorus 4.5))
202 Added: (check-equal? (length (get-nutrient-measurements)) 1)
203 Added: (define nm (get-nutrient-measurement #:measured-on measurement-date))
204 Added: (check-true (nutrient-measurement? nm))
205 Added: (check-equal? (nutrient-measurement-measured-on nm) measurement-date))
206 Added:
207 Added: (test-case "Check all measurement values"
208 Added: (define nitrogen (get-nutrient #:name "Nitrogen"))
209 Added: (define phosphorus (get-nutrient #:name "Phosphorus"))
210 Added:
211 Added: (define nm (get-nutrient-measurement #:measured-on measurement-date))
212 Added: (check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3)
213 Added: (check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5)
214 Added:
215 Added: (define nmv (nutrient-measurement-nutrient-values nm))
216 Added: (check-equal?
217 Added: (get-nutrient-measurement-values nm)
218 Added: nmv
219 Added: "return value of get-nutrient-measurement-values ≠ nutrient-measurement-values struct accessor")
220 Added: (check-equal? (hash-count nmv) 2)
221 Added: (check-equal? (hash-ref nmv nitrogen) 12.3)
222 Added: (check-equal? (hash-ref nmv phosphorus) 4.5))
223 Added:
224 Added: (test-case "Retrieve latest measurement values"
225 Added: (define nitrogen (get-nutrient #:name "Nitrogen"))
226 Added: (define phosphorus (get-nutrient #:name "Phosphorus"))
227 Added: (define second-measurement-date "2025-09-02")
228 Added: (create-nutrient-measurement! second-measurement-date (hash nitrogen 6.7 phosphorus 8.9))
229 Added:
230 Added: (check-equal? (get-latest-nutrient-measurement-value nitrogen) 6.7)
231 Added: (check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9))
232 Added:
233 Added: (test-case "Delete measurement and cascade to measurement values"
234 Added: (define nm (get-nutrient-measurement #:measured-on measurement-date))
235 Added: (delete-nutrient-measurement! nm)
236 Added: (check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm)))
237 Added: (check-equal? (length (get-nutrient-measurements))
238 Added: 1
239 Added: "wrong number of nutrient measurements were deleted")
240 Added: (check-true (hash-empty? (get-nutrient-measurement-values nm)))))))
models/nutrient.rkt
index 07fb4fdf..dd8d6774 100644..100644
@@ -47,13 +47,12 @@
47 47
48 48 (define (create-nutrient! canonical-name french-name formula)
49 49 (or (get-nutrient #:name canonical-name #:formula formula)
50 Removed: (with-tx
51 Removed: (query-exec (current-conn)
52 Removed: (insert #:into nutrients
53 Removed: #:set [canonical_name ,canonical-name]
54 Removed: [french_name ,french-name]
55 Removed: [formula ,formula]))
56 Removed: (get-nutrient #:name canonical-name))))
50 Added: (with-tx (query-exec (current-conn)
51 Added: (insert #:into nutrients
52 Added: #:set [canonical_name ,canonical-name]
53 Added: [french_name ,french-name]
54 Added: [formula ,formula]))
55 Added: (get-nutrient #:name canonical-name))))
57 56
58 57 ;; READ
59 58
@@ -110,3 +109,70 @@
110 109
111 110 (define (delete-nutrient! nutrient)
112 111 (query-exec (current-conn) (delete #:from nutrients #:where (= id ,(nutrient-id nutrient)))))
112 Added:
113 Added: (module+ test
114 Added: (require rackunit
115 Added: rackunit/text-ui
116 Added: "../db/conn.rkt"
117 Added: "../db/migrations.rkt")
118 Added:
119 Added: (run-tests (test-suite "Nutrient model"
120 Added: #:before (λ ()
121 Added: (connect! #:path 'memory)
122 Added: (migrate-all!))
123 Added: #:after (λ () (disconnect!))
124 Added:
125 Added: (test-case "Create nutrients"
126 Added: (check-equal? (length (get-nutrients)) 0)
127 Added: (create-nutrient! "Examplium" "" "Ex")
128 Added: (check-equal? (length (get-nutrients)) 1)
129 Added: (create-nutrient! "Ignorium" "" "Ig")
130 Added: (check-equal? (length (get-nutrients)) 2))
131 Added:
132 Added: (test-case "Read nutrient"
133 Added: (define examplium (get-nutrient #:id 1))
134 Added: (check-true (nutrient? examplium))
135 Added: (check-equal? (nutrient-id examplium) 1))
136 Added:
137 Added: (test-case "Read nutrient by name"
138 Added: (define examplium (get-nutrient #:name "Examplium"))
139 Added: (check-true (nutrient? examplium))
140 Added: (check-equal? (nutrient-canonical-name examplium) "Examplium"))
141 Added:
142 Added: (test-case "Read nutrient by formula"
143 Added: (define examplium (get-nutrient #:formula "Ex"))
144 Added: (check-true (nutrient? examplium))
145 Added: (check-equal? (nutrient-formula examplium) "Ex"))
146 Added:
147 Added: (test-case "Read inexisting nutrient"
148 Added: (check-false (get-nutrient #:name "Inexistium")))
149 Added:
150 Added: (test-case "Update nutrient name"
151 Added: (define examplium (get-nutrient #:name "Examplium"))
152 Added: (define examplium-nitrate (update-nutrient! examplium #:name "Examplium Nitrate"))
153 Added: (check-equal? (length (get-nutrients)) 2)
154 Added: (check-equal? (nutrient-canonical-name examplium-nitrate) "Examplium Nitrate")
155 Added: (check-equal? (nutrient-formula examplium-nitrate) "Ex"))
156 Added:
157 Added: (test-case "Update nutrient formula"
158 Added: (define examplium-nitrate (get-nutrient #:name "Examplium Nitrate"))
159 Added: (define examplium-sulfate (update-nutrient! examplium-nitrate #:formula "ExSO4"))
160 Added: (check-equal? (length (get-nutrients)) 2)
161 Added: (check-equal? (nutrient-canonical-name examplium-sulfate) "Examplium Nitrate")
162 Added: (check-equal? (nutrient-formula examplium-sulfate) "ExSO4"))
163 Added:
164 Added: (test-case "Update nutrient name and formula"
165 Added: (define examplium-nitrate (get-nutrient #:name "Examplium Nitrate"))
166 Added: (define examplium-sulfate
167 Added: (update-nutrient! examplium-nitrate #:name "Examplium Sulfate" #:formula "ExNO3"))
168 Added: (check-equal? (length (get-nutrients)) 2)
169 Added: (check-equal? (nutrient-canonical-name examplium-sulfate) "Examplium Sulfate")
170 Added: (check-equal? (nutrient-formula examplium-sulfate) "ExNO3"))
171 Added:
172 Added: (test-case "Delete nutrient"
173 Added: (define examplium-sulfate (get-nutrient #:name "Examplium Sulfate"))
174 Added: (delete-nutrient! examplium-sulfate)
175 Added: (check-equal? (length (get-nutrients)) 1)
176 Added: (define ignorium (get-nutrient #:name "Ignorium"))
177 Added: (delete-nutrient! ignorium)
178 Added: (check-equal? (length (get-nutrients)) 0)))))
tests/models/nutrient-measurement.rkt
index f64f9cd5..00000000 100644..000000
@@ -1,66 +0,0 @@
1 Removed: #lang racket
2 Removed:
3 Removed: (module+ test
4 Removed: (require rackunit
5 Removed: rackunit/text-ui
6 Removed: "../../db/conn.rkt"
7 Removed: "../../db/migrations.rkt"
8 Removed: "../../models/nutrient.rkt"
9 Removed: "../../models/nutrient-measurement.rkt")
10 Removed:
11 Removed: (define measurement-date "2025-09-01")
12 Removed:
13 Removed: (run-tests
14 Removed: (test-suite "Nutrient measurement model"
15 Removed: #:before (λ ()
16 Removed: (connect! #:path 'memory)
17 Removed: ;; (connect! #:path "test.sqlite3")
18 Removed: (migrate-all!)
19 Removed: (create-nutrient! "Nitrogen" "" "N")
20 Removed: (create-nutrient! "Phosphorus" "" "P")
21 Removed: (create-nutrient! "Potassium" "" "K"))
22 Removed: #:after (λ () (disconnect!))
23 Removed:
24 Removed: (test-case "Create measurement with date and values"
25 Removed: (define nitrogen (get-nutrient #:name "Nitrogen"))
26 Removed: (define phosphorus (get-nutrient #:name "Phosphorus"))
27 Removed: (create-nutrient-measurement! measurement-date (hash nitrogen 12.3 phosphorus 4.5))
28 Removed: (check-equal? (length (get-nutrient-measurements)) 1)
29 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
30 Removed: (check-true (nutrient-measurement? nm))
31 Removed: (check-equal? (nutrient-measurement-date nm) measurement-date))
32 Removed:
33 Removed: (test-case "Check all measurement values"
34 Removed: (define nitrogen (get-nutrient #:name "Nitrogen"))
35 Removed: (define phosphorus (get-nutrient #:name "Phosphorus"))
36 Removed:
37 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
38 Removed: (check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3)
39 Removed: (check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5)
40 Removed:
41 Removed: (define nmv (nutrient-measurement-values nm))
42 Removed: (check-equal?
43 Removed: (get-nutrient-measurement-values nm)
44 Removed: nmv
45 Removed: "return value of get-nutrient-measurement-values ≠ nutrient-measurement-values struct accessor")
46 Removed: (check-equal? (hash-count nmv) 2)
47 Removed: (check-equal? (hash-ref nmv nitrogen) 12.3)
48 Removed: (check-equal? (hash-ref nmv phosphorus) 4.5))
49 Removed:
50 Removed: (test-case "Retrieve latest measurement values"
51 Removed: (define nitrogen (get-nutrient #:name "Nitrogen"))
52 Removed: (define phosphorus (get-nutrient #:name "Phosphorus"))
53 Removed: (define second-measurement-date "2025-09-02")
54 Removed: (create-nutrient-measurement! second-measurement-date (hash nitrogen 6.7 phosphorus 8.9))
55 Removed:
56 Removed: (check-equal? (get-latest-nutrient-measurement-value nitrogen) 6.7)
57 Removed: (check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9))
58 Removed:
59 Removed: (test-case "Delete measurement and cascade to measurement values"
60 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
61 Removed: (delete-nutrient-measurement! nm)
62 Removed: (check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm)))
63 Removed: (check-equal? (length (get-nutrient-measurements))
64 Removed: 1
65 Removed: "wrong number of nutrient measurements were deleted")
66 Removed: (check-true (hash-empty? (get-nutrient-measurement-values nm)))))))
tests/models/nutrient.rkt
index 525ef66a..00000000 100644..000000
@@ -1,69 +0,0 @@
1 Removed: #lang racket
2 Removed:
3 Removed: (module+ test
4 Removed: (require rackunit
5 Removed: rackunit/text-ui
6 Removed: "../../db/conn.rkt"
7 Removed: "../../db/migrations.rkt"
8 Removed: "../../models/nutrient.rkt")
9 Removed:
10 Removed: (run-tests (test-suite "Nutrient model"
11 Removed: #:before (λ ()
12 Removed: (connect! #:path 'memory)
13 Removed: (migrate-all!))
14 Removed: #:after (λ () (disconnect!))
15 Removed:
16 Removed: (test-case "Create nutrients"
17 Removed: (check-equal? (length (get-nutrients)) 0)
18 Removed: (create-nutrient! "Examplium" "" "Ex")
19 Removed: (check-equal? (length (get-nutrients)) 1)
20 Removed: (create-nutrient! "Ignorium" "" "Ig")
21 Removed: (check-equal? (length (get-nutrients)) 2))
22 Removed:
23 Removed: (test-case "Read nutrient"
24 Removed: (define examplium (get-nutrient #:id 1))
25 Removed: (check-true (nutrient? examplium))
26 Removed: (check-equal? (nutrient-id examplium) 1))
27 Removed:
28 Removed: (test-case "Read nutrient by name"
29 Removed: (define examplium (get-nutrient #:name "Examplium"))
30 Removed: (check-true (nutrient? examplium))
31 Removed: (check-equal? (nutrient-canonical-name examplium) "Examplium"))
32 Removed:
33 Removed: (test-case "Read nutrient by formula"
34 Removed: (define examplium (get-nutrient #:formula "Ex"))
35 Removed: (check-true (nutrient? examplium))
36 Removed: (check-equal? (nutrient-formula examplium) "Ex"))
37 Removed:
38 Removed: (test-case "Read inexisting nutrient"
39 Removed: (check-false (get-nutrient #:name "Inexistium")))
40 Removed:
41 Removed: (test-case "Update nutrient name"
42 Removed: (define examplium (get-nutrient #:name "Examplium"))
43 Removed: (define examplium-nitrate (update-nutrient! examplium #:name "Examplium Nitrate"))
44 Removed: (check-equal? (length (get-nutrients)) 2)
45 Removed: (check-equal? (nutrient-canonical-name examplium-nitrate) "Examplium Nitrate")
46 Removed: (check-equal? (nutrient-formula examplium-nitrate) "Ex"))
47 Removed:
48 Removed: (test-case "Update nutrient formula"
49 Removed: (define examplium-nitrate (get-nutrient #:name "Examplium Nitrate"))
50 Removed: (define examplium-sulfate (update-nutrient! examplium-nitrate #:formula "ExSO4"))
51 Removed: (check-equal? (length (get-nutrients)) 2)
52 Removed: (check-equal? (nutrient-canonical-name examplium-sulfate) "Examplium Nitrate")
53 Removed: (check-equal? (nutrient-formula examplium-sulfate) "ExSO4"))
54 Removed:
55 Removed: (test-case "Update nutrient name and formula"
56 Removed: (define examplium-nitrate (get-nutrient #:name "Examplium Nitrate"))
57 Removed: (define examplium-sulfate
58 Removed: (update-nutrient! examplium-nitrate #:name "Examplium Sulfate" #:formula "ExNO3"))
59 Removed: (check-equal? (length (get-nutrients)) 2)
60 Removed: (check-equal? (nutrient-canonical-name examplium-sulfate) "Examplium Sulfate")
61 Removed: (check-equal? (nutrient-formula examplium-sulfate) "ExNO3"))
62 Removed:
63 Removed: (test-case "Delete nutrient"
64 Removed: (define examplium-sulfate (get-nutrient #:name "Examplium Sulfate"))
65 Removed: (delete-nutrient! examplium-sulfate)
66 Removed: (check-equal? (length (get-nutrients)) 1)
67 Removed: (define ignorium (get-nutrient #:name "Ignorium"))
68 Removed: (delete-nutrient! ignorium)
69 Removed: (check-equal? (length (get-nutrients)) 0)))))