celq 0.4.0

A CEL command-line query tool for JSON data
Documentation
use super::*;
use tempfile::NamedTempFile;

#[test]
fn test_compile_expression_inline() {
    let result = compile_expression(Some("1 + 2"), None);

    assert!(result.is_ok());
}

#[test]
fn test_compile_expression_from_file() {
    let file = NamedTempFile::new().unwrap();
    fs::write(file.path(), "1 + 2").unwrap();

    let result = compile_expression(None, Some(&file.path().to_path_buf()));

    assert!(result.is_ok());
}

#[test]
fn test_compile_expression_missing_expression() {
    let err = compile_expression(None, None).unwrap_err().to_string();

    assert!(err.contains("missing CEL expression"));
}

#[test]
fn test_compile_expression_missing_file() {
    let path = PathBuf::from("/definitely/missing/celq-expression.txt");
    let err = compile_expression(None, Some(&path))
        .unwrap_err()
        .to_string();

    assert!(err.contains("failed to read expression file"));
}

#[test]
fn test_compile_expression_invalid_source() {
    let err = compile_expression(Some("("), None).unwrap_err().to_string();

    assert!(!err.is_empty());
}