Test directory should mirror top-level hierarchy.

Commit
b5d09dba20573c431a9f21795ac90547631caae7
Author
Marius Peter <dev@marius-peter.com>
Author date
Committer
Marius Peter <dev@marius-peter.com>
Committer date
Changed files
tests/models/nutrient-measurement.rkt
index 00000000..010c812d 000000..100644
@@ -0,0 +1,69 @@
1 Added: #lang racket
2 Added:
3 Added: (module+ test
4 Added: (require rackunit
5 Added: rackunit/text-ui
6 Added: "../db/conn.rkt"
7 Added: "../db/migrations.rkt"
8 Added: "../models/nutrient.rkt"
9 Added: "../models/nutrient-measurement.rkt")
10 Added:
11 Added: (define measurement-date "2025-09-01")
12 Added:
13 Added: (run-tests
14 Added: (test-suite
15 Added: "Nutrient measurement model"
16 Added: #:before (λ ()
17 Added: (connect! #:path 'memory)
18 Added: ;; (connect! #:path "test.sqlite3")
19 Added: (migrate-all!)
20 Added: (create-nutrient! "Nitrogen" "N")
21 Added: (create-nutrient! "Phosphorus" "P")
22 Added: (create-nutrient! "Potassium" "K"))
23 Added: #:after (λ ()
24 Added: (disconnect!))
25 Added:
26 Added: (test-case "Create measurement with date and values"
27 Added: (define nitrogen (get-nutrient #:name "Nitrogen"))
28 Added: (define phosphorus (get-nutrient #:name "Phosphorus"))
29 Added: (create-nutrient-measurement! measurement-date
30 Added: `((,nitrogen . 12.3)
31 Added: (,phosphorus . 4.5)))
32 Added: (check-equal? (length (get-nutrient-measurements)) 1)
33 Added: (define nm (get-nutrient-measurement #:measured-on measurement-date))
34 Added: (check-true (nutrient-measurement? nm))
35 Added: (check-equal? (nutrient-measurement-date nm) measurement-date))
36 Added:
37 Added: (test-case "Check all measurement values"
38 Added: (define nitrogen (get-nutrient #:name "Nitrogen"))
39 Added: (define phosphorus (get-nutrient #:name "Phosphorus"))
40 Added:
41 Added: (define nm (get-nutrient-measurement #:measured-on measurement-date))
42 Added: (check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3)
43 Added: (check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5)
44 Added:
45 Added: (define nmv (nutrient-measurement-values nm))
46 Added: (check-equal? (get-nutrient-measurement-values nm) nmv
47 Added: "return value of get-nutrient-measurement-values ≠ nutrient-measurement-values struct accessor")
48 Added: (check-equal? (length nmv) 2)
49 Added: (check-equal? (cdr (assoc nitrogen nmv)) 12.3)
50 Added: (check-equal? (cdr (assoc phosphorus nmv)) 4.5))
51 Added:
52 Added: (test-case "Retrieve latest measurement values"
53 Added: (define nitrogen (get-nutrient #:name "Nitrogen"))
54 Added: (define phosphorus (get-nutrient #:name "Phosphorus"))
55 Added: (define second-measurement-date "2025-09-02")
56 Added: (create-nutrient-measurement! second-measurement-date
57 Added: `((,nitrogen . 6.7)
58 Added: (,phosphorus . 8.9)))
59 Added:
60 Added: (check-equal? (get-latest-nutrient-measurement-value nitrogen) 6.7)
61 Added: (check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9))
62 Added:
63 Added: (test-case "Delete measurement and cascade to measurement values"
64 Added: (define nm (get-nutrient-measurement #:measured-on measurement-date))
65 Added: (delete-nutrient-measurement! nm)
66 Added: (check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm)))
67 Added: (check-equal? (length (get-nutrient-measurements)) 1
68 Added: "wrong number of nutrient measurements were deleted")
69 Added: (check-true (null? (get-nutrient-measurement-values nm)))))))
tests/models/nutrient.rkt
index 00000000..39a574c4 000000..100644
@@ -0,0 +1,76 @@
1 Added: #lang racket
2 Added:
3 Added: (module+ test
4 Added: (require rackunit
5 Added: rackunit/text-ui
6 Added: "../db/conn.rkt"
7 Added: "../db/migrations.rkt"
8 Added: "../models/nutrient.rkt")
9 Added:
10 Added: (run-tests
11 Added: (test-suite
12 Added: "Nutrient model"
13 Added: #:before (λ ()
14 Added: (connect! #:path 'memory)
15 Added: (migrate-all!))
16 Added: #:after (λ ()
17 Added: (disconnect!))
18 Added:
19 Added: (test-case "Create nutrients"
20 Added: (create-nutrient! "Examplium" "Ex")
21 Added: (check-equal? (length (get-nutrients)) 1)
22 Added: (create-nutrient! "Ignorium" "Ig")
23 Added: (check-equal? (length (get-nutrients)) 2))
24 Added:
25 Added: (test-case "Read nutrient"
26 Added: (define examplium (get-nutrient #:id 1))
27 Added: (check-true (nutrient? examplium))
28 Added: (check-equal? (nutrient-id examplium) 1))
29 Added:
30 Added: (test-case "Read nutrient by name"
31 Added: (define examplium (get-nutrient #:name "Examplium"))
32 Added: (check-true (nutrient? examplium))
33 Added: (check-equal? (nutrient-name examplium) "Examplium"))
34 Added:
35 Added: (test-case "Read nutrient by formula"
36 Added: (define examplium (get-nutrient #:formula "Ex"))
37 Added: (check-true (nutrient? examplium))
38 Added: (check-equal? (nutrient-formula examplium) "Ex"))
39 Added:
40 Added: (test-case "Read inexisting nutrient"
41 Added: (check-false (get-nutrient #:name "Inexistium")))
42 Added:
43 Added: (test-case "Update nutrient name"
44 Added: (define examplium (get-nutrient #:name "Examplium"))
45 Added: (define examplium-nitrate
46 Added: (update-nutrient! examplium #:name "Examplium Nitrate"))
47 Added: (check-equal? (length (get-nutrients)) 2)
48 Added: (check-equal? (nutrient-name examplium-nitrate) "Examplium Nitrate")
49 Added: (check-equal? (nutrient-formula examplium-nitrate) "Ex"))
50 Added:
51 Added: (test-case "Update nutrient formula"
52 Added: (define examplium-nitrate (get-nutrient #:name "Examplium Nitrate"))
53 Added: (define examplium-sulfate
54 Added: (update-nutrient! examplium-nitrate #:formula "ExSO4"))
55 Added: (check-equal? (length (get-nutrients)) 2)
56 Added: (check-equal? (nutrient-name examplium-sulfate) "Examplium Nitrate")
57 Added: (check-equal? (nutrient-formula examplium-sulfate) "ExSO4"))
58 Added:
59 Added: (test-case "Update nutrient name and formula"
60 Added: (define examplium-nitrate
61 Added: (get-nutrient #:name "Examplium Nitrate"))
62 Added: (define examplium-sulfate
63 Added: (update-nutrient! examplium-nitrate
64 Added: #:name "Examplium Sulfate"
65 Added: #:formula "ExNO3"))
66 Added: (check-equal? (length (get-nutrients)) 2)
67 Added: (check-equal? (nutrient-name examplium-sulfate) "Examplium Sulfate")
68 Added: (check-equal? (nutrient-formula examplium-sulfate) "ExNO3"))
69 Added:
70 Added: (test-case "Delete nutrient"
71 Added: (define examplium-sulfate (get-nutrient #:name "Examplium Sulfate"))
72 Added: (delete-nutrient! examplium-sulfate)
73 Added: (check-equal? (length (get-nutrients)) 1)
74 Added: (define ignorium (get-nutrient #:name "Ignorium"))
75 Added: (delete-nutrient! ignorium)
76 Added: (check-equal? (length (get-nutrients)) 0)))))
tests/nutrient-measurement-model.rkt
index 010c812d..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: "../models/nutrient-measurement.rkt")
10 Removed:
11 Removed: (define measurement-date "2025-09-01")
12 Removed:
13 Removed: (run-tests
14 Removed: (test-suite
15 Removed: "Nutrient measurement model"
16 Removed: #:before (λ ()
17 Removed: (connect! #:path 'memory)
18 Removed: ;; (connect! #:path "test.sqlite3")
19 Removed: (migrate-all!)
20 Removed: (create-nutrient! "Nitrogen" "N")
21 Removed: (create-nutrient! "Phosphorus" "P")
22 Removed: (create-nutrient! "Potassium" "K"))
23 Removed: #:after (λ ()
24 Removed: (disconnect!))
25 Removed:
26 Removed: (test-case "Create measurement with date and values"
27 Removed: (define nitrogen (get-nutrient #:name "Nitrogen"))
28 Removed: (define phosphorus (get-nutrient #:name "Phosphorus"))
29 Removed: (create-nutrient-measurement! measurement-date
30 Removed: `((,nitrogen . 12.3)
31 Removed: (,phosphorus . 4.5)))
32 Removed: (check-equal? (length (get-nutrient-measurements)) 1)
33 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
34 Removed: (check-true (nutrient-measurement? nm))
35 Removed: (check-equal? (nutrient-measurement-date nm) measurement-date))
36 Removed:
37 Removed: (test-case "Check all measurement values"
38 Removed: (define nitrogen (get-nutrient #:name "Nitrogen"))
39 Removed: (define phosphorus (get-nutrient #:name "Phosphorus"))
40 Removed:
41 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
42 Removed: (check-equal? (get-nutrient-measurement-value nm nitrogen) 12.3)
43 Removed: (check-equal? (get-nutrient-measurement-value nm phosphorus) 4.5)
44 Removed:
45 Removed: (define nmv (nutrient-measurement-values nm))
46 Removed: (check-equal? (get-nutrient-measurement-values nm) nmv
47 Removed: "return value of get-nutrient-measurement-values ≠ nutrient-measurement-values struct accessor")
48 Removed: (check-equal? (length nmv) 2)
49 Removed: (check-equal? (cdr (assoc nitrogen nmv)) 12.3)
50 Removed: (check-equal? (cdr (assoc phosphorus nmv)) 4.5))
51 Removed:
52 Removed: (test-case "Retrieve latest measurement values"
53 Removed: (define nitrogen (get-nutrient #:name "Nitrogen"))
54 Removed: (define phosphorus (get-nutrient #:name "Phosphorus"))
55 Removed: (define second-measurement-date "2025-09-02")
56 Removed: (create-nutrient-measurement! second-measurement-date
57 Removed: `((,nitrogen . 6.7)
58 Removed: (,phosphorus . 8.9)))
59 Removed:
60 Removed: (check-equal? (get-latest-nutrient-measurement-value nitrogen) 6.7)
61 Removed: (check-equal? (get-latest-nutrient-measurement-value phosphorus) 8.9))
62 Removed:
63 Removed: (test-case "Delete measurement and cascade to measurement values"
64 Removed: (define nm (get-nutrient-measurement #:measured-on measurement-date))
65 Removed: (delete-nutrient-measurement! nm)
66 Removed: (check-false (get-nutrient-measurement #:id (nutrient-measurement-id nm)))
67 Removed: (check-equal? (length (get-nutrient-measurements)) 1
68 Removed: "wrong number of nutrient measurements were deleted")
69 Removed: (check-true (null? (get-nutrient-measurement-values nm)))))))
tests/nutrient-model.rkt
index 39a574c4..00000000 100644..000000
@@ -1,76 +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
11 Removed: (test-suite
12 Removed: "Nutrient model"
13 Removed: #:before (λ ()
14 Removed: (connect! #:path 'memory)
15 Removed: (migrate-all!))
16 Removed: #:after (λ ()
17 Removed: (disconnect!))
18 Removed:
19 Removed: (test-case "Create nutrients"
20 Removed: (create-nutrient! "Examplium" "Ex")
21 Removed: (check-equal? (length (get-nutrients)) 1)
22 Removed: (create-nutrient! "Ignorium" "Ig")
23 Removed: (check-equal? (length (get-nutrients)) 2))
24 Removed:
25 Removed: (test-case "Read nutrient"
26 Removed: (define examplium (get-nutrient #:id 1))
27 Removed: (check-true (nutrient? examplium))
28 Removed: (check-equal? (nutrient-id examplium) 1))
29 Removed:
30 Removed: (test-case "Read nutrient by name"
31 Removed: (define examplium (get-nutrient #:name "Examplium"))
32 Removed: (check-true (nutrient? examplium))
33 Removed: (check-equal? (nutrient-name examplium) "Examplium"))
34 Removed:
35 Removed: (test-case "Read nutrient by formula"
36 Removed: (define examplium (get-nutrient #:formula "Ex"))
37 Removed: (check-true (nutrient? examplium))
38 Removed: (check-equal? (nutrient-formula examplium) "Ex"))
39 Removed:
40 Removed: (test-case "Read inexisting nutrient"
41 Removed: (check-false (get-nutrient #:name "Inexistium")))
42 Removed:
43 Removed: (test-case "Update nutrient name"
44 Removed: (define examplium (get-nutrient #:name "Examplium"))
45 Removed: (define examplium-nitrate
46 Removed: (update-nutrient! examplium #:name "Examplium Nitrate"))
47 Removed: (check-equal? (length (get-nutrients)) 2)
48 Removed: (check-equal? (nutrient-name examplium-nitrate) "Examplium Nitrate")
49 Removed: (check-equal? (nutrient-formula examplium-nitrate) "Ex"))
50 Removed:
51 Removed: (test-case "Update nutrient formula"
52 Removed: (define examplium-nitrate (get-nutrient #:name "Examplium Nitrate"))
53 Removed: (define examplium-sulfate
54 Removed: (update-nutrient! examplium-nitrate #:formula "ExSO4"))
55 Removed: (check-equal? (length (get-nutrients)) 2)
56 Removed: (check-equal? (nutrient-name examplium-sulfate) "Examplium Nitrate")
57 Removed: (check-equal? (nutrient-formula examplium-sulfate) "ExSO4"))
58 Removed:
59 Removed: (test-case "Update nutrient name and formula"
60 Removed: (define examplium-nitrate
61 Removed: (get-nutrient #:name "Examplium Nitrate"))
62 Removed: (define examplium-sulfate
63 Removed: (update-nutrient! examplium-nitrate
64 Removed: #:name "Examplium Sulfate"
65 Removed: #:formula "ExNO3"))
66 Removed: (check-equal? (length (get-nutrients)) 2)
67 Removed: (check-equal? (nutrient-name examplium-sulfate) "Examplium Sulfate")
68 Removed: (check-equal? (nutrient-formula examplium-sulfate) "ExNO3"))
69 Removed:
70 Removed: (test-case "Delete nutrient"
71 Removed: (define examplium-sulfate (get-nutrient #:name "Examplium Sulfate"))
72 Removed: (delete-nutrient! examplium-sulfate)
73 Removed: (check-equal? (length (get-nutrients)) 1)
74 Removed: (define ignorium (get-nutrient #:name "Ignorium"))
75 Removed: (delete-nutrient! ignorium)
76 Removed: (check-equal? (length (get-nutrients)) 0)))))