use crate::error::VBResult;
use crate::value::VBVariant;
use super::curdir::resolve_curdir;
pub fn curdir_dollar(drive: Option<&VBVariant>) -> VBResult<VBVariant> {
let dir = resolve_curdir(drive)?;
Ok(VBVariant::from_string(&dir))
}
#[cfg(test)]
mod tests {
use super::*;
use crate::state::file::{self};
#[test]
fn curdir_dollar_returns_current_directory() {
let _guard = crate::state::test_support::lock_test();
let dir = tempfile::tempdir().unwrap();
file::set_root(dir.path());
file::set_current_dir(dir.path()).unwrap();
let result = curdir_dollar(None).unwrap();
match result {
VBVariant::String(s) => {
let s_str = s.as_str();
assert!(s_str.ends_with(dir.path().file_name().unwrap().to_str().unwrap()));
}
_ => panic!("Expected String variant"),
}
}
}