MCPcopy Create free account
hub / github.com/coder/envbuilder / TestEnvOptionParsing

Function TestEnvOptionParsing

options/options_test.go:17–76  ·  view source on GitHub ↗

TestEnvOptionParsing tests that given environment variables of different types are handled as expected.

(t *testing.T)

Source from the content-addressed store, hash-verified

15
16// TestEnvOptionParsing tests that given environment variables of different types are handled as expected.
17func TestEnvOptionParsing(t *testing.T) {
18 t.Run("string", func(t *testing.T) {
19 const val = "setup.sh"
20 t.Setenv(options.WithEnvPrefix("SETUP_SCRIPT"), val)
21 o := runCLI()
22 require.Equal(t, o.SetupScript, val)
23 })
24
25 t.Run("int", func(t *testing.T) {
26 t.Setenv(options.WithEnvPrefix("CACHE_TTL_DAYS"), "7")
27 o := runCLI()
28 require.Equal(t, o.CacheTTLDays, int64(7))
29 })
30
31 t.Run("string array", func(t *testing.T) {
32 t.Setenv(options.WithEnvPrefix("IGNORE_PATHS"), "/var,/temp")
33 o := runCLI()
34 require.Equal(t, o.IgnorePaths, []string{"/var", "/temp"})
35 })
36
37 t.Run("bool", func(t *testing.T) {
38 t.Run("lowercase", func(t *testing.T) {
39 t.Setenv(options.WithEnvPrefix("SKIP_REBUILD"), "true")
40 t.Setenv(options.WithEnvPrefix("GIT_CLONE_SINGLE_BRANCH"), "false")
41 t.Setenv(options.WithEnvPrefix("GIT_CLONE_THINPACK"), "false")
42 o := runCLI()
43 require.True(t, o.SkipRebuild)
44 require.False(t, o.GitCloneSingleBranch)
45 require.False(t, o.GitCloneThinPack)
46 })
47
48 t.Run("uppercase", func(t *testing.T) {
49 t.Setenv(options.WithEnvPrefix("SKIP_REBUILD"), "TRUE")
50 t.Setenv(options.WithEnvPrefix("GIT_CLONE_SINGLE_BRANCH"), "FALSE")
51 t.Setenv(options.WithEnvPrefix("GIT_CLONE_THINPACK"), "FALSE")
52 o := runCLI()
53 require.True(t, o.SkipRebuild)
54 require.False(t, o.GitCloneSingleBranch)
55 require.False(t, o.GitCloneThinPack)
56 })
57
58 t.Run("numeric", func(t *testing.T) {
59 t.Setenv(options.WithEnvPrefix("SKIP_REBUILD"), "1")
60 t.Setenv(options.WithEnvPrefix("GIT_CLONE_SINGLE_BRANCH"), "0")
61 t.Setenv(options.WithEnvPrefix("GIT_CLONE_THINPACK"), "0")
62 o := runCLI()
63 require.True(t, o.SkipRebuild)
64 require.False(t, o.GitCloneSingleBranch)
65 require.False(t, o.GitCloneThinPack)
66 })
67
68 t.Run("empty", func(t *testing.T) {
69 t.Setenv(options.WithEnvPrefix("GIT_CLONE_SINGLE_BRANCH"), "")
70 t.Setenv(options.WithEnvPrefix("GIT_CLONE_THINPACK"), "")
71 o := runCLI()
72 require.False(t, o.GitCloneSingleBranch)
73 require.True(t, o.GitCloneThinPack)
74 })

Callers

nothing calls this directly

Calls 2

WithEnvPrefixFunction · 0.92
runCLIFunction · 0.85

Tested by

no test coverage detected