github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/edit/vars_test.go (about) 1 package edit 2 3 import ( 4 "testing" 5 6 "github.com/markusbkk/elvish/pkg/eval" 7 "github.com/markusbkk/elvish/pkg/eval/errs" 8 . "github.com/markusbkk/elvish/pkg/eval/evaltest" 9 "github.com/markusbkk/elvish/pkg/eval/vals" 10 ) 11 12 func TestAddVar(t *testing.T) { 13 TestWithSetup(t, func(ev *eval.Evaler) { 14 ev.ExtendGlobal(eval.BuildNs().AddGoFn("add-var", addVar)) 15 }, 16 That("add-var foo bar").Then("put $foo").Puts("bar"), 17 18 // Qualified name 19 That("add-var a:b ''").Throws( 20 errs.BadValue{ 21 What: "name argument to edit:add-var", 22 Valid: "unqualified variable name", Actual: "a:b"}), 23 // Bad type 24 That("add-var a~ ''").Throws(ErrorWithType(vals.WrongType{})), 25 ) 26 } 27 28 func TestAddVars(t *testing.T) { 29 TestWithSetup(t, func(ev *eval.Evaler) { 30 ev.ExtendGlobal(eval.BuildNs().AddGoFn("add-vars", addVars)) 31 }, 32 That("add-vars [&foo=bar]").Then("put $foo").Puts("bar"), 33 That("add-vars [&a=A &b=B]").Then("put $a $b").Puts("A", "B"), 34 35 // Non-string key 36 That("add-vars [&[]='']").Throws( 37 errs.BadValue{ 38 What: "key of argument to edit:add-vars", 39 Valid: "string", Actual: "list"}), 40 41 // Qualified name 42 That("add-vars [&a:b='']").Throws( 43 errs.BadValue{ 44 What: "key of argument to edit:add-vars", 45 Valid: "unqualified variable name", Actual: "a:b"}), 46 // Bad type 47 That("add-vars [&a~='']").Throws(ErrorWithType(vals.WrongType{})), 48 ) 49 }