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