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

Function TestCompileDevContainer

devcontainer/devcontainer_test.go:152–193  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

150}
151
152func TestCompileDevContainer(t *testing.T) {
153 t.Parallel()
154 t.Run("WithImage", func(t *testing.T) {
155 t.Parallel()
156 fs := memfs.New()
157 dc := &devcontainer.Spec{
158 Image: "localhost:5000/envbuilder-test-ubuntu:latest",
159 }
160 params, err := dc.Compile(fs, "", workingDir, "", "", false, stubLookupEnv)
161 require.NoError(t, err)
162 require.Equal(t, filepath.Join(workingDir, "Dockerfile"), params.DockerfilePath)
163 require.Equal(t, workingDir, params.BuildContext)
164 })
165 t.Run("WithBuild", func(t *testing.T) {
166 t.Parallel()
167 fs := memfs.New()
168 dc := &devcontainer.Spec{
169 Build: devcontainer.BuildSpec{
170 Dockerfile: "Dockerfile",
171 Context: ".",
172 Args: map[string]string{
173 "ARG1": "value1",
174 "ARG2": "${localWorkspaceFolderBasename}",
175 },
176 },
177 }
178 dcDir := "/workspaces/coder/.devcontainer"
179 err := fs.MkdirAll(dcDir, 0o755)
180 require.NoError(t, err)
181 file, err := fs.OpenFile(filepath.Join(dcDir, "Dockerfile"), os.O_CREATE|os.O_WRONLY, 0o644)
182 require.NoError(t, err)
183 _, err = io.WriteString(file, "FROM localhost:5000/envbuilder-test-ubuntu:latest")
184 require.NoError(t, err)
185 _ = file.Close()
186 params, err := dc.Compile(fs, dcDir, workingDir, "", "/var/workspace", false, stubLookupEnv)
187 require.NoError(t, err)
188 require.Equal(t, "ARG1=value1", params.BuildArgs[0])
189 require.Equal(t, "ARG2=workspace", params.BuildArgs[1])
190 require.Equal(t, filepath.Join(dcDir, "Dockerfile"), params.DockerfilePath)
191 require.Equal(t, dcDir, params.BuildContext)
192 })
193}
194
195func TestImageFromDockerfile(t *testing.T) {
196 t.Parallel()

Callers

nothing calls this directly

Calls 5

CompileMethod · 0.95
JoinMethod · 0.80
CloseMethod · 0.80
MkdirAllMethod · 0.65
OpenFileMethod · 0.65

Tested by

no test coverage detected