From 3c478958c77eb00367513b21200d432333a887aa Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 7 Mar 2022 01:54:56 -0500 Subject: basic implementation of aliases --- src/parse/test_ast.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/parse/test_ast.rs') diff --git a/src/parse/test_ast.rs b/src/parse/test_ast.rs index 94798a3..4ac75ec 100644 --- a/src/parse/test_ast.rs +++ b/src/parse/test_ast.rs @@ -164,6 +164,16 @@ macro_rules! eval_eq { }}; } +macro_rules! deserialize_eq { + ($line:literal, $parsed:expr) => {{ + use serde::de::IntoDeserializer as _; + use serde::Deserialize as _; + let exe: Result<_, serde::de::value::Error> = + Exe::deserialize($line.into_deserializer()); + assert_eq!(exe.unwrap(), $parsed); + }}; +} + macro_rules! eval_fails { ($line:literal, $env:expr) => {{ let ast = Commands::parse($line).unwrap(); @@ -486,3 +496,9 @@ async fn test_eval_glob() { eval_fails!("echo *.doesnotexist", env); eval_fails!("echo *.{toml,doesnotexist}", env); } + +#[test] +fn test_deserialize() { + deserialize_eq!("foo", e!(w!("foo"))); + deserialize_eq!("foo bar baz", e!(w!("foo"), w!("bar"), w!("baz"))); +} -- cgit v1.2.3-54-g00ecf