alef 0.107.1

Opinionated polyglot binding generator for Rust libraries
Documentation
use crate::core::config::Language;
use crate::docs::doc_cleaning::{clean_doc, clean_doc_inline};

#[test]
fn canonical_markdown_labels_bare_fences_and_spaces_headings() {
    let input = "Summary.  Next sentence.\n- item\n##### Details\n```\nvalue\n```";
    let expected = "Summary. Next sentence.\n\n- item\n\n##### Details\n\n```rust\nvalue\n```";

    assert_eq!(clean_doc(input, Language::Python), expected);
}

#[test]
fn table_cell_markdown_turns_fenced_blocks_into_inline_code() {
    let input = "In TOML:\n\n```toml\n[client]\nmodel_tier = \"server\"\n```\nDone.";
    let expected = "In TOML: `[client] model_tier = \"server\"` Done.";

    assert_eq!(clean_doc_inline(input, Language::Python), expected);
}

#[test]
fn table_cell_markdown_uses_a_longer_delimiter_for_embedded_backticks() {
    let input = "```text\ncall `value` now\n```";

    assert_eq!(clean_doc_inline(input, Language::Python), "``call `value` now``");
}

#[test]
fn canonical_markdown_preserves_wide_fences_and_ignores_shorter_inner_runs() {
    let input = "````\n```not a closing fence\nvalue\n````";
    let expected = "````rust\n```not a closing fence\nvalue\n````";

    assert_eq!(clean_doc(input, Language::Python), expected);
}

#[test]
fn table_cell_markdown_preserves_shorter_backtick_runs_inside_wide_fences() {
    let input = "````\n```not a closing fence\nvalue\n````";

    assert_eq!(
        clean_doc_inline(input, Language::Python),
        "```` ```not a closing fence value ````"
    );
}