10000 chore: fix the test suite · coder/envbuilder@66aa804 · GitHub
[go: up one dir, main page]

Skip to content

Commit 66aa804

Browse files
committed
chore: fix the test suite
1 parent f23d20d commit 66aa804

File tree

3 files changed

+14
-7
lines changed

3 files changed

+14
-7
lines changed

envbuilder.go

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,7 @@ func Run(ctx context.Context, options Options) error {
192192
}
193193
}
194194

195+
var fallbackErr error
195196
var cloned bool
196197
if options.GitURL != "" {
197198
endStage := startStage("📦 Cloning %s to %s...",
@@ -228,8 +229,7 @@ func Run(ctx context.Context, options Options) error {
228229
options.GitURL = gitURL.String()
229230
}
230231

231-
var err error
232-
cloned, err = CloneRepo(ctx, CloneRepoOptions{
232+
cloned, fallbackErr = CloneRepo(ctx, CloneRepoOptions{
233233
Path: options.WorkspaceFolder,
234234
Storage: options.Filesystem,
235235
RepoURL: options.GitURL,
@@ -243,14 +243,14 @@ func Run(ctx context.Context, options Options) error {
243243
Depth: options.GitCloneDepth,
244244
CABundle: caBundle,
245245
})
246-
if err == nil {
246+
if fallbackErr == nil {
247247
if cloned {
248248
endStage("📦 Cloned repository!")
249249
} else {
250250
endStage("📦 The repository already exists!")
251251
}
252252
} else {
253-
logf(codersdk.LogLevelError, "Failed to clone repository: %s", err.Error())
253+
logf(codersdk.LogLevelError, "Failed to clone repository: %s", fallbackErr.Error())
254254
logf(codersdk.LogLevelError, "Falling back to the default image...")
255255
}
256256
}
@@ -265,6 +265,11 @@ func Run(ctx context.Context, options Options) error {
265265
}
266266
defer file.Close()
267267
if options.FallbackImage == "" {
268+
if fallbackErr != nil {
269+
return xerrors.Errorf("%s: %w", fallbackErr.Error(), ErrNoFallbackImage)
270+
}
271+
// We can't use errors.Join here because our tests
272+
// don't support parsing a multiline error.
268273
return ErrNoFallbackImage
269274
}
270275
_, err = file.Write([]byte("FROM " + options.FallbackImage))
@@ -377,8 +382,10 @@ func Run(ctx context.Context, options Options) error {
377382
switch {
378383
case strings.Contains(err.Error(), "parsing dockerfile"):
379384
fallback = true
385+
fallbackErr = err
380386
case strings.Contains(err.Error(), "error building stage"):
381387
fallback = true
388+
fallbackErr = err
382389
case strings.Contains(err.Error(), "unexpected status code 401 Unauthorized"):
383390
logf(codersdk.LogLevelError, "Unable to pull the provided image. Ensure your registry credentials are correct!")
384391
}
@@ -539,8 +546,6 @@ func Run(ctx context.Context, options Options) error {
539546

540547
err = cmd.Run()
541548
if err != nil {
542-
fmt.Printf("FAILED! %s\n", err)
543-
time.Sleep(time.Hour)
544549
return fmt.Errorf("run init script: %w", err)
545550
}
546551
return nil

integration/integration_test.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,6 +137,7 @@ func TestBuildFailsFallback(t *testing.T) {
137137
"DOCKERFILE_PATH=Dockerfile",
138138
})
139139
require.ErrorContains(t, err, envbuilder.ErrNoFallbackImage.Error())
140+
require.ErrorContains(t, err, "dockerfile parse error")
140141
})
141142
t.Run("FailsBuild", func(t *testing.T) {
142143
t.Parallel()

log_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,11 @@ func TestSendLogsToCoder(t *testing.T) {
3737
srvURL, err := url.Parse(srv.URL)
3838
require.NoError(t, err)
3939
client := agentsdk.New(srvURL)
40-
sendLog, err := envbuilder.SendLogsToCoder(context.Background(), client, func(format string, args ...any) {
40+
sendLog, closeFunc, err := envbuilder.SendLogsToCoder(context.Background(), client, func(format string, args ...any) {
4141
t.Logf(format, args...)
4242
})
4343
require.NoError(t, err)
44+
defer closeFunc()
4445
sendLog(agentsdk.StartupLog{
4546
Output: "Hello, world!",
4647
})

0 commit comments

Comments
 (0)
0