mdbook_lint_core/rules/standard/
md057.rs1use crate::error::Result;
7use crate::rule::{Rule, RuleMetadata};
8use crate::{Document, violation::Violation};
9use comrak::nodes::AstNode;
10
11pub struct MD057;
13
14impl Rule for MD057 {
15 fn id(&self) -> &'static str {
16 "MD057"
17 }
18
19 fn name(&self) -> &'static str {
20 "reserved"
21 }
22
23 fn description(&self) -> &'static str {
24 "Reserved for future use"
25 }
26
27 fn metadata(&self) -> RuleMetadata {
28 RuleMetadata::reserved("Reserved for future implementation in markdownlint")
29 .introduced_in("mdbook-lint v0.1.0")
30 }
31
32 fn check_with_ast<'a>(
33 &self,
34 _document: &Document,
35 _ast: Option<&'a AstNode<'a>>,
36 ) -> Result<Vec<Violation>> {
37 Ok(vec![])
39 }
40}
41
42#[cfg(test)]
43mod tests {
44 use super::*;
45 use crate::test_helpers::create_document;
46
47 #[test]
48 fn test_md057_rule_properties() {
49 let rule = MD057;
50 assert_eq!(rule.id(), "MD057");
51 assert_eq!(rule.name(), "reserved");
52 assert_eq!(rule.description(), "Reserved for future use");
53 }
54
55 #[test]
56 fn test_md057_metadata() {
57 let rule = MD057;
58 let metadata = rule.metadata();
59 assert_eq!(metadata.stability, crate::rule::RuleStability::Reserved);
60 assert!(
61 metadata
62 .introduced_in
63 .unwrap_or("")
64 .contains("mdbook-lint v0.1.0")
65 );
66 }
67
68 #[test]
69 fn test_md057_never_produces_violations() {
70 let rule = MD057;
71 let document = create_document("# Heading\n\nSome content with violations");
72 let violations = rule.check(&document).unwrap();
73 assert_eq!(violations.len(), 0);
74 }
75
76 #[test]
77 fn test_md057_with_empty_document() {
78 let rule = MD057;
79 let document = create_document("");
80 let violations = rule.check(&document).unwrap();
81 assert_eq!(violations.len(), 0);
82 }
83
84 #[test]
85 fn test_md057_with_complex_markdown() {
86 let rule = MD057;
87 let content = r#"
88# Heading 1
89
90Some **bold** and *italic* text.
91
92## Heading 2
93
94- List item 1
95- List item 2
96
97```rust
98fn main() {
99 println!("Hello, world!");
100}
101```
102
103[Link](https://example.com)
104
105| Table | Header |
106|-------|--------|
107| Cell | Value |
108"#;
109 let document = create_document(content);
110 let violations = rule.check(&document).unwrap();
111 assert_eq!(violations.len(), 0);
112 }
113}