(t *testing.T)
| 1063 | } |
| 1064 | |
| 1065 | func 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 + ` |
| 1088 | RUN 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 |
nothing calls this directly
no test coverage detected