v/cmd/tools/vdoc/document/doc_test.v

64 lines
1.5 KiB
V

// import v.ast
import document as doc
// fn test_generate_with_pos() {}
// fn test_generate() {}
// fn test_generate_from_ast() {}
fn test_generate_from_mod() {
nested_mod_name := 'net.http.chunked'
nested_mod_doc := doc.generate_from_mod(nested_mod_name, false, true) or {
eprintln(err)
assert false
doc.Doc{}
}
assert nested_mod_doc.head.name == nested_mod_name
assert nested_mod_doc.head.content == 'module ${nested_mod_name}'
assert nested_mod_doc.contents.len == 3
assert nested_mod_doc.contents['ChunkScanner'].children.len == 3
}
fn test_tags_with_flag_struct_attribute() {
mod_name := 'gg'
mod_doc := doc.generate_from_mod(mod_name, false, true) or {
eprintln(err)
assert false
doc.Doc{}
}
assert mod_doc.head.name == mod_name
mouse_buttons := mod_doc.contents['MouseButtons']!
assert mouse_buttons.content == '@[flag]
pub enum MouseButtons {
left
right
middle
}'
assert mouse_buttons.attrs == {
'flag': '@[flag]'
}
assert mouse_buttons.tags == ['@[flag]']
end_options := mod_doc.contents['EndOptions']
assert end_options.content == '@[params]
pub struct EndOptions {
pub:
how EndEnum
}'
assert end_options.attrs == {
'params': '@[params]'
}
assert end_options.tags == ['@[params]']
pipeline_container := mod_doc.contents['PipelineContainer']
assert pipeline_container.content == '@[heap]
pub struct PipelineContainer {
pub mut:
alpha sgl.Pipeline
add sgl.Pipeline
}'
assert pipeline_container.attrs == {
'heap': '@[heap]'
}
assert pipeline_container.tags == ['@[heap]']
}