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  }