fix(cli/doc): doc printer missing [] around tuple type (#6523)

This commit is contained in:
Valentin Anger 2020-06-28 16:35:12 +02:00 committed by GitHub
parent 89ebe2079b
commit 660f86f1a2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 1 deletions

View file

@ -206,7 +206,7 @@ fn render_ts_type(ts_type: doc::ts_type::TsTypeDef) -> String {
TsTypeDefKind::This => "this".to_string(),
TsTypeDefKind::Tuple => {
let tuple = ts_type.tuple.unwrap();
let mut output = "".to_string();
let mut output = "[".to_string();
if !tuple.is_empty() {
for ts_type in tuple {
output += render_ts_type(ts_type).as_str();
@ -214,6 +214,7 @@ fn render_ts_type(ts_type: doc::ts_type::TsTypeDef) -> String {
}
output.truncate(output.len() - 2);
}
output += "]";
output
}
TsTypeDefKind::TypeLiteral => {

View file

@ -1605,3 +1605,20 @@ export namespace Deno {
let found = find_nodes_by_name_recursively(entries, "a.b.c".to_string());
assert_eq!(found.len(), 0);
}
#[tokio::test]
async fn generic_instantiated_with_tuple_type() {
let source_code = r#"
interface Generic<T> {}
export function f(): Generic<[string, number]> { return {}; }
"#;
let loader =
TestLoader::new(vec![("test.ts".to_string(), source_code.to_string())]);
let entries = DocParser::new(loader).parse("test.ts").await.unwrap();
assert!(colors::strip_ansi_codes(
crate::doc::printer::format(entries).as_str()
)
.contains("Generic<[string, number]>"))
}