fixes #20132; fixes the broken jsondoc comand [backport] (#20135)

* fixes #20132; fixes the broken jsondoc comand

* add testcase
This commit is contained in:
ringabout 2022-08-04 14:49:51 +08:00 • committed by GitHub
commit 2aeb0d516b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 1 deletions

11
tests/misc/mjsondoc.nim Normal file
View file

@ -0,0 +1,11 @@
proc doSomething*(x, y: int): int =
## do something
x + y
const
a* = 1 ## echo 1234
b* = "test"
type
MyEnum* = enum
foo, bar

View file

@ -216,6 +216,23 @@ sub/mmain.idx""", context
let cmd = fmt"{nim} r --backend:{mode} --hints:off --nimcache:{nimcache} {file}"
check execCmdEx(cmd) == ("ok3\n", 0)
block: # nim jsondoc # bug #20132
let file = testsDir / "misc/mjsondoc.nim"
let output = "nimcache_tjsondoc.json"
defer: removeFile(output)
let (msg, exitCode) = execCmdEx(fmt"{nim} jsondoc -o:{output} {file}")
doAssert exitCode == 0, msg
let data = parseJson(readFile(output))["entries"]
doAssert data.len == 4
let doSomething = data[0]
doAssert doSomething["name"].getStr == "doSomething"
doAssert doSomething["type"].getStr == "skProc"
doAssert doSomething["line"].getInt == 1
doAssert doSomething["col"].getInt == 0
doAssert doSomething["code"].getStr == "proc doSomething(x, y: int): int {.raises: [], tags: [], forbids: [].}"
block: # further issues with `--backend`
let file = testsDir / "misc/mbackend.nim"
var cmd = fmt"{nim} doc -b:cpp --hints:off --nimcache:{nimcache} {file}"