src.elv.sh@v0.21.0-dev.0.20240515223629-06979efb9a2a/pkg/eval/vars/read_only_test.go (about) 1 package vars 2 3 import ( 4 "testing" 5 6 "src.elv.sh/pkg/eval/errs" 7 "src.elv.sh/pkg/tt" 8 ) 9 10 func TestNewReadOnly(t *testing.T) { 11 v := NewReadOnly("haha") 12 if v.Get() != "haha" { 13 t.Errorf("Get doesn't return initial value") 14 } 15 16 err := v.Set("lala") 17 if _, ok := err.(errs.SetReadOnlyVar); !ok { 18 t.Errorf("Set a readonly var doesn't error as expected: %#v", err) 19 } 20 } 21 22 func TestIsReadOnly(t *testing.T) { 23 tt.Test(t, IsReadOnly, 24 Args(NewReadOnly("foo")).Rets(true), 25 Args(FromGet(func() any { return "foo" })).Rets(true), 26 Args(FromInit("foo")).Rets(false), 27 ) 28 }