kanri 0.11.0

Manage your projects within the terminal.
Documentation
use std::path::PathBuf;

use crate::blueprints::engine::BlueprintEngine;

#[test]
fn test_engine_initialization() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok())
}

#[test]
fn test_engine_math() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok());

    let code = r#"
            assert(type(math.floor) == "function")
            assert(math.floor(1.9) == 1)
        "#;
    assert!(engine.unwrap().run(code).is_ok())
}

#[test]
fn test_engine_string() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok());

    let code = r#"
            assert(type(string.upper) == "function")
            assert(string.upper("kanri") == "KANRI")
        "#;
    assert!(engine.unwrap().run(code).is_ok())
}

#[test]
fn test_engine_utf8() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok());

    let code = r#"
            assert(type(utf8.len) == "function")
            assert(utf8.len("kanri") == 5)
        "#;
    assert!(engine.unwrap().run(code).is_ok())
}

#[test]
fn test_engine_table() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok());

    let code = r#"
            assert(type(table.insert) == "function")
            local t = {}
            table.insert(t, "ok")
            assert(t[1] == "ok")
        "#;
    assert!(engine.unwrap().run(code).is_ok())
}

#[test]
fn test_engine_os() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok());

    let code: &str;

    #[cfg(windows)]
    {
        code = r#"
            assert(type(os.family) == "function")
            assert(os.family() == "windows")
            "#;
    }

    #[cfg(not(windows))]
    {
        code = r#"
            assert(type(os.family) == "function")
            assert(os.family() == "unix")
            "#;
    }

    assert!(engine.unwrap().run(code).is_ok())
}

#[test]
fn test_engine_project() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok());

    let code = r#"
            assert(type(project.name) == "function")
            assert(project.name() == "test")
        "#;
    assert!(engine.unwrap().run(code).is_ok())
}

#[test]
fn test_engine_fs() {
    let engine = BlueprintEngine::init(PathBuf::new(), "test.lua", "test", false);
    assert!(engine.is_ok());

    let code = r#"
            assert(type(fs.is_file) == "function")
            assert(fs.is_file("Cargo.toml") == true)
        "#;
    assert!(engine.unwrap().run(code).is_ok())
}