nu-command 0.115.0

Nushell's built-in commands
Documentation
use nu_path::AbsolutePath;
use nu_test_support::playground::Playground;
use nu_test_support::prelude::*;

#[test]
fn creates_temp_file() -> Result {
    Playground::setup("mktemp_test_1", |dirs, _| {
        let output: String = test().cwd(dirs.test()).run("mktemp")?;
        let loc = AbsolutePath::try_new(&output).unwrap();
        assert!(loc.exists());
        Ok(())
    })
}

#[test]
fn creates_temp_file_with_suffix() -> Result {
    Playground::setup("mktemp_test_2", |dirs, _| {
        let output: String = test()
            .cwd(dirs.test())
            .run("mktemp --suffix .txt tempfileXXX")?;
        let loc = AbsolutePath::try_new(&output).unwrap();
        assert!(loc.exists());
        assert!(loc.is_file());
        assert!(output.ends_with(".txt"));
        assert!(output.starts_with(dirs.test().to_str().unwrap()));
        Ok(())
    })
}

#[test]
fn creates_temp_directory() -> Result {
    Playground::setup("mktemp_test_3", |dirs, _| {
        let output: String = test().cwd(dirs.test()).run("mktemp -d")?;
        let loc = AbsolutePath::try_new(&output).unwrap();
        assert!(loc.exists());
        assert!(loc.is_dir());
        Ok(())
    })
}

#[test]
fn doesnt_create_temp_file() -> Result {
    Playground::setup("mktemp_test_1", |dirs, _| {
        let output: String = test().cwd(dirs.test()).run("mktemp --dry")?;
        let loc = AbsolutePath::try_new(&output).unwrap();
        assert!(!loc.exists());
        Ok(())
    })
}