-
Notifications
You must be signed in to change notification settings - Fork 4
/
test-slite.lisp
47 lines (40 loc) · 1.42 KB
/
test-slite.lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
(defpackage :slite/tests
(:use #:cl
#:fiveam
#:alexandria)
(:import-from #:slite
#:ensure-safe-for-sl*
#:process-results)
(:import-from #:fiveam
#:test-case
#:test-result))
(in-package :slite/tests)
(def-suite :slite)
(def-suite* :slite/tests :in :slite)
(test process-results-happy-path
(let* ((test-case (make-instance 'test-case
:name 'foobar))
(result1 (make-instance 'test-result
:test-expr '(+ 1 2)
:test-case test-case))
(result2 (make-instance 'test-result
:test-expr '(+ 1 2)
:test-case test-case)))
(let ((res (process-results (list result1 result2))))
(is (eql 1 (length res)))
(let ((first (car res)))
(is (equal "FOOBAR" (getf (getf first :id) :test-name))))))
(pass))
(test demo-test
(is (eql 3 (+ 1 2)))
(is (eql 4 (+ 2 2))))
(defclass dummy () ())
(test ensure-safe-for-sl*
(is (equal "foo" (ensure-safe-for-sl* "foo")))
(signals error
(ensure-safe-for-sl* (make-instance 'dummy)))
(is (equal 8 (ensure-safe-for-sl* 8)))
(is (equal 'foo (ensure-safe-for-sl* 'foo)))
(is (equal (list 8 "foo") (ensure-safe-for-sl* (list 8 "foo"))))
(signals error
(ensure-safe-for-sl* (list "foo" (make-instance 'dummy)))))