asciidocr 0.1.13

A pure-Rust CLI and library for processing and converting asciidoc files
Documentation
pub mod common;

use std::env::current_dir;

use asciidocr::errors::ParserError;
use asciidocr::parser::Parser;
use asciidocr::scanner::Scanner;
use common::assert_parsed_doc_matches_expected_asg;

#[test]
fn test_offset_absolute() {
    let fn_pattern = "blocks/level-offset-absolute";
    let adoc_fn = format!("{}.adoc", fn_pattern);
    let asg_json_fn = format!("{}.json", fn_pattern);
    assert_parsed_doc_matches_expected_asg(&adoc_fn, &asg_json_fn)
}

#[test]
fn test_offset_relative() {
    let fn_pattern = "blocks/level-offset-relative";
    let adoc_fn = format!("{}.adoc", fn_pattern);
    let asg_json_fn = format!("{}.json", fn_pattern);
    assert_parsed_doc_matches_expected_asg(&adoc_fn, &asg_json_fn)
}

#[test]
fn test_offset_as_inline_attribute() {
    let fn_pattern = "blocks/level-offset-attributes";
    let adoc_fn = format!("{}.adoc", fn_pattern);
    let asg_json_fn = format!("{}.json", fn_pattern);
    assert_parsed_doc_matches_expected_asg(&adoc_fn, &asg_json_fn)
}

#[test]
fn test_offest_too_big() {
    let adoc_str = String::from(":leveloffset: +7\n\n== Fail me\n\n");
    let result = Parser::new(current_dir().unwrap()).parse(Scanner::new(&adoc_str));
    assert!(result.is_err_and(|e| e == ParserError::HeadingOffsetError(3, 7)))
}

#[test]
fn test_offest_too_small() {
    let adoc_str = String::from(":leveloffset: -3\n\n== Fail me\n\n");
    let result = Parser::new(current_dir().unwrap()).parse(Scanner::new(&adoc_str));
    assert!(result.is_err_and(|e| e == ParserError::HeadingOffsetError(3, -3)))
}

#[test]
fn test_offest_level_0() {
    let adoc_str = String::from(":leveloffset: +1\n\n= Pass me\n\nOkay");
    let result = Parser::new(current_dir().unwrap()).parse(Scanner::new(&adoc_str));
    assert!(result.is_ok())
}