use super::build_comment;
use super::build_multi_comment;
use crate::syntax::_node_builders::languages::rust::tests_utils::{find_node, rust_ast_graph};
use crate::syntax::core_nodes::Comment;
use alloc::borrow::ToOwned;
const SINGLE_COMMENT_SOURCE: &str = include_str!("single_comment.test.rs");
const DOC_COMMENT_SOURCE: &str = include_str!("doc_comment.test.rs");
const DOC_COMMENT_2_SOURCE: &str = include_str!("doc_comment_2.test.rs");
const MULTI_COMMENT_SOURCE: &str = include_str!("multi_comment.test.rs");
#[test]
fn builds_a_single_line_comment() {
let graph = rust_ast_graph(SINGLE_COMMENT_SOURCE);
let node = find_node(&graph, "line_comment");
let built = build_comment(&graph, node).unwrap();
assert_eq!(
built,
Comment {
value: "//".to_owned(),
}
);
}
#[test]
fn builds_a_doc_comment() {
let graph = rust_ast_graph(DOC_COMMENT_SOURCE);
let node = find_node(&graph, "line_comment");
let built = build_comment(&graph, node).unwrap();
assert_eq!(
built,
Comment {
value: "//! const ENABLED: bool = true;\n".to_owned(),
}
);
}
#[test]
fn builds_a_doc_comment_2() {
let graph = rust_ast_graph(DOC_COMMENT_2_SOURCE);
let node = find_node(&graph, "line_comment");
let built = build_comment(&graph, node).unwrap();
assert_eq!(
built,
Comment {
value: "/// const ENABLED: bool = true;\n".to_owned(),
}
);
}
#[test]
fn builds_a_multi_line_comment() {
let graph = rust_ast_graph(MULTI_COMMENT_SOURCE);
let node = find_node(&graph, "block_comment");
let built = build_multi_comment(&graph, node).unwrap();
assert!(
built
== Comment {
value: "/**/".to_owned(),
}
);
}