AtlatestRepositorysigil-docs
sigil-docs / tree / testtest-lookup.sgl
1
;;; Test suite for (sigil docs lookup)3
(import (sigil test)4
(sigil docs lookup))6
;; ============================================================7
;;; Record Tests8
;; ============================================================10
(test "create module-details record"11
(let ((details (module-details12
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-details27
name: 'my-func28
kind: 'procedure29
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-details40
name: 'when41
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 Tests50
;; ============================================================52
(test "load-module-details returns module-details struct"53
(let ((details (load-module-details '(sigil string))))54
(when details55
(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 details61
(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 desc68
(assert-true (string? desc)))))70
;; ============================================================71
;;; Path Resolution Tests72
;; ============================================================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 Tests81
;; ============================================================83
(run-tests)