...

Source file src/oss.terrastruct.com/util-go/xos/env_test.go

Documentation: oss.terrastruct.com/util-go/xos

     1  package xos_test
     2  
     3  import (
     4  	"testing"
     5  
     6  	"oss.terrastruct.com/util-go/assert"
     7  	"oss.terrastruct.com/util-go/xos"
     8  )
     9  
    10  func TestEnv(t *testing.T) {
    11  	t.Parallel()
    12  
    13  	e := xos.NewEnv(nil)
    14  	assert.String(t, "", e.Getenv("NONE"))
    15  
    16  	e.Setenv("DEBUG", "MEOW")
    17  	e.Setenv("DEBUG2", "TWO")
    18  	e.Setenv("DEBUG3", "THREE")
    19  	e.Setenv("DEBUG4", "FOUR")
    20  
    21  	assert.StringJSON(t, `[
    22    "DEBUG=MEOW",
    23    "DEBUG2=TWO",
    24    "DEBUG3=THREE",
    25    "DEBUG4=FOUR"
    26  ]`, e.Environ())
    27  
    28  	e.Setenv("DEBUG", "D2")
    29  	assert.StringJSON(t, `[
    30    "DEBUG=D2",
    31    "DEBUG2=TWO",
    32    "DEBUG3=THREE",
    33    "DEBUG4=FOUR"
    34  ]`, e.Environ())
    35  	assert.String(t, "D2", e.Getenv("DEBUG"))
    36  }
    37  
    38  func TestBool(t *testing.T) {
    39  	t.Parallel()
    40  
    41  	env := xos.NewEnv(nil)
    42  
    43  	eb, err := env.Bool("MY_BOOL")
    44  	assert.Success(t, err)
    45  	assert.StringJSON(t, `null`, eb)
    46  
    47  	env.Setenv("MY_BOOL", "0")
    48  	eb, err = env.Bool("MY_BOOL")
    49  	assert.Success(t, err)
    50  	assert.StringJSON(t, `false`, eb)
    51  
    52  	env.Setenv("MY_BOOL", "1")
    53  	eb, err = env.Bool("MY_BOOL")
    54  	assert.Success(t, err)
    55  	assert.StringJSON(t, `true`, eb)
    56  
    57  	env.Setenv("MY_BOOL", "false")
    58  	eb, err = env.Bool("MY_BOOL")
    59  	assert.Success(t, err)
    60  	assert.StringJSON(t, `false`, eb)
    61  
    62  	env.Setenv("MY_BOOL", "true")
    63  	eb, err = env.Bool("MY_BOOL")
    64  	assert.Success(t, err)
    65  	assert.StringJSON(t, `true`, eb)
    66  
    67  	env.Setenv("MY_BOOL", "TRUE")
    68  	eb, err = env.Bool("MY_BOOL")
    69  	assert.Error(t, err)
    70  	assert.ErrorString(t, err, `$MY_BOOL must be 0, 1, false or true but got "TRUE"`)
    71  }
    72  

View as plain text