AtlatestRepositorysigil-docs

sigil-docs / tree / testtest-lookup.sgl

1;;; Test suite for (sigil docs lookup)
2
3(import (sigil test)
4 (sigil docs lookup))
5
6;; ============================================================
7;;; Record Tests
8;; ============================================================
9
10(test "create module-details record"
11 (let ((details (module-details
12 name: '(test module)
13 file: "test.sgl"
14 package: "test-pkg"
15 description: "A test module"
16 exports: '()
17 syntaxes: '()
18 examples: '())))
19 (assert-true (module-details? details))
20 (assert-equal (module-details-name details) '(test module))
21 (assert-equal (module-details-file details) "test.sgl")
22 (assert-equal (module-details-package details) "test-pkg")
23 (assert-equal (module-details-description details) "A test module")))
25(test "create export-details record"
26 (let ((details (export-details
27 name: 'my-func
28 kind: 'procedure
29 signature: '(my-func x y)
30 description: "Does something"
31 examples: '())))
32 (assert-true (export-details? details))
33 (assert-equal (export-details-name details) 'my-func)
34 (assert-equal (export-details-kind details) 'procedure)
35 (assert-equal (export-details-signature details) '(my-func x y))
36 (assert-equal (export-details-description details) "Does something")))
38(test "create syntax-details record"
39 (let ((details (syntax-details
40 name: 'when
41 patterns: '((when test body ...))
42 description: "Conditional"
43 examples: '())))
44 (assert-true (syntax-details? details))
45 (assert-equal (syntax-details-name details) 'when)
46 (assert-equal (syntax-details-description details) "Conditional")))
48;; ============================================================
49;;; JSON Lookup Tests
50;; ============================================================
52(test "load-module-details returns module-details struct"
53 (let ((details (load-module-details '(sigil string))))
54 (when details
55 (assert-true (module-details? details))
56 (assert-equal (module-details-name details) '(sigil string)))))
58(test "get-export-details returns export-details struct"
59 (let ((details (get-export-details '(sigil string) 'string-split)))
60 (when details
61 (assert-true (export-details? details))
62 (assert-equal (export-details-name details) 'string-split)
63 (assert-equal (export-details-kind details) 'procedure))))
65(test "get-module-description returns description string"
66 (let ((desc (get-module-description '(sigil string))))
67 (when desc
68 (assert-true (string? desc)))))
70;; ============================================================
71;;; Path Resolution Tests
72;; ============================================================
74(test "module-name->doc-path generates correct path"
75 (assert-equal (module-name->doc-path '(sigil string)) "sigil/string.json")
76 (assert-equal (module-name->doc-path '(scheme base)) "scheme/base.json")
77 (assert-equal (module-name->doc-path '(sigil docs lookup)) "sigil/docs/lookup.json"))
79;; ============================================================
80;;; Run Tests
81;; ============================================================
83(run-tests)