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

Function TestCompile

devcontainer/features/features_test.go:74–123  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

72}
73
74func TestCompile(t *testing.T) {
75 t.Parallel()
76 t.Run("UnknownOption", func(t *testing.T) {
77 t.Parallel()
78 spec := &features.Spec{}
79 _, _, err := spec.Compile("coder/test:latest", "test", "", "containerUser", "remoteUser", false, map[string]any{
80 "unknown": "value",
81 })
82 require.ErrorContains(t, err, "unknown option")
83 })
84 t.Run("Basic", func(t *testing.T) {
85 t.Parallel()
86 spec := &features.Spec{}
87 _, directive, err := spec.Compile("coder/test:latest", "test", "/", "containerUser", "remoteUser", false, nil)
88 require.NoError(t, err)
89 require.Equal(t, "WORKDIR /\nRUN _CONTAINER_USER=\"containerUser\" _REMOTE_USER=\"remoteUser\" ./install.sh", strings.TrimSpace(directive))
90 })
91 t.Run("ContainerEnv", func(t *testing.T) {
92 t.Parallel()
93 spec := &features.Spec{
94 ContainerEnv: map[string]string{
95 "FOO": "bar",
96 },
97 }
98 _, directive, err := spec.Compile("coder/test:latest", "test", "/", "containerUser", "remoteUser", false, nil)
99 require.NoError(t, err)
100 require.Equal(t, "WORKDIR /\nENV FOO=bar\nRUN _CONTAINER_USER=\"containerUser\" _REMOTE_USER=\"remoteUser\" ./install.sh", strings.TrimSpace(directive))
101 })
102 t.Run("OptionsEnv", func(t *testing.T) {
103 t.Parallel()
104 spec := &features.Spec{
105 Options: map[string]features.Option{
106 "foo": {
107 Default: "bar",
108 },
109 },
110 }
111 _, directive, err := spec.Compile("coder/test:latest", "test", "/", "containerUser", "remoteUser", false, nil)
112 require.NoError(t, err)
113 require.Equal(t, "WORKDIR /\nRUN FOO=\"bar\" _CONTAINER_USER=\"containerUser\" _REMOTE_USER=\"remoteUser\" ./install.sh", strings.TrimSpace(directive))
114 })
115 t.Run("BuildContext", func(t *testing.T) {
116 t.Parallel()
117 spec := &features.Spec{}
118 fromDirective, runDirective, err := spec.Compile("coder/test:latest", "test", "/.envbuilder/feature/test-d8e8fc", "containerUser", "remoteUser", true, nil)
119 require.NoError(t, err)
120 require.Equal(t, "FROM scratch AS envbuilder_feature_test\nCOPY --from=coder/test:latest / /", strings.TrimSpace(fromDirective))
121 require.Equal(t, "WORKDIR /.envbuilder/features/test\nRUN --mount=type=bind,from=envbuilder_feature_test,target=/.envbuilder/features/test,rw _CONTAINER_USER=\"containerUser\" _REMOTE_USER=\"remoteUser\" ./install.sh", strings.TrimSpace(runDirective))
122 })
123}

Callers

nothing calls this directly

Calls 1

CompileMethod · 0.95

Tested by

no test coverage detected