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

Function TestBuildFailsFallback

integration/integration_test.go:1065–1126  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

1063}
1064
1065func TestBuildFailsFallback(t *testing.T) {
1066 t.Parallel()
1067 t.Run("BadDockerfile", func(t *testing.T) {
1068 t.Parallel()
1069 // Ensures that a Git repository with a Dockerfile is cloned and built.
1070 srv := gittest.CreateGitServer(t, gittest.Options{
1071 Files: map[string]string{
1072 "Dockerfile": "bad syntax",
1073 },
1074 })
1075 _, err := runEnvbuilder(t, runOpts{env: []string{
1076 envbuilderEnv("GIT_URL", srv.URL),
1077 envbuilderEnv("DOCKERFILE_PATH", "Dockerfile"),
1078 }})
1079 require.ErrorContains(t, err, envbuilder.ErrNoFallbackImage.Error())
1080 require.ErrorContains(t, err, "dockerfile parse error")
1081 })
1082 t.Run("FailsBuild", func(t *testing.T) {
1083 t.Parallel()
1084 // Ensures that a Git repository with a Dockerfile is cloned and built.
1085 srv := gittest.CreateGitServer(t, gittest.Options{
1086 Files: map[string]string{
1087 "Dockerfile": `FROM ` + testImageAlpine + `
1088RUN exit 1`,
1089 },
1090 })
1091 _, err := runEnvbuilder(t, runOpts{env: []string{
1092 envbuilderEnv("GIT_URL", srv.URL),
1093 envbuilderEnv("DOCKERFILE_PATH", "Dockerfile"),
1094 }})
1095 require.ErrorContains(t, err, envbuilder.ErrNoFallbackImage.Error())
1096 })
1097 t.Run("BadDevcontainer", func(t *testing.T) {
1098 t.Parallel()
1099 // Ensures that a Git repository with a Dockerfile is cloned and built.
1100 srv := gittest.CreateGitServer(t, gittest.Options{
1101 Files: map[string]string{
1102 ".devcontainer/devcontainer.json": "not json",
1103 },
1104 })
1105 _, err := runEnvbuilder(t, runOpts{env: []string{
1106 envbuilderEnv("GIT_URL", srv.URL),
1107 }})
1108 require.ErrorContains(t, err, envbuilder.ErrNoFallbackImage.Error())
1109 })
1110 t.Run("NoImageOrDockerfile", func(t *testing.T) {
1111 t.Parallel()
1112 srv := gittest.CreateGitServer(t, gittest.Options{
1113 Files: map[string]string{
1114 ".devcontainer/devcontainer.json": "{}",
1115 },
1116 })
1117 ctr, err := runEnvbuilder(t, runOpts{env: []string{
1118 envbuilderEnv("GIT_URL", srv.URL),
1119 envbuilderEnv("FALLBACK_IMAGE", testImageAlpine),
1120 }})
1121 require.NoError(t, err)
1122

Callers

nothing calls this directly

Calls 5

CreateGitServerFunction · 0.92
runEnvbuilderFunction · 0.85
envbuilderEnvFunction · 0.85
execContainerFunction · 0.85
ErrorMethod · 0.80

Tested by

no test coverage detected