Skip to content

Commit

Permalink
chore: fix the test suite
Browse files Browse the repository at this point in the history
  • Loading branch information
kylecarbs committed Jun 20, 2023
1 parent f23d20d commit 66aa804
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 7 deletions.
17 changes: 11 additions & 6 deletions envbuilder.go
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ func Run(ctx context.Context, options Options) error {
}
}

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

var err error
cloned, err = CloneRepo(ctx, CloneRepoOptions{
cloned, fallbackErr = CloneRepo(ctx, CloneRepoOptions{
Path: options.WorkspaceFolder,
Storage: options.Filesystem,
RepoURL: options.GitURL,
Expand All @@ -243,14 +243,14 @@ func Run(ctx context.Context, options Options) error {
Depth: options.GitCloneDepth,
CABundle: caBundle,
})
if err == nil {
if fallbackErr == nil {
if cloned {
endStage("📦 Cloned repository!")
} else {
endStage("📦 The repository already exists!")
}
} else {
logf(codersdk.LogLevelError, "Failed to clone repository: %s", err.Error())
logf(codersdk.LogLevelError, "Failed to clone repository: %s", fallbackErr.Error())
logf(codersdk.LogLevelError, "Falling back to the default image...")
}
}
Expand All @@ -265,6 +265,11 @@ func Run(ctx context.Context, options Options) error {
}
defer file.Close()
if options.FallbackImage == "" {
if fallbackErr != nil {
return xerrors.Errorf("%s: %w", fallbackErr.Error(), ErrNoFallbackImage)
}
// We can't use errors.Join here because our tests
// don't support parsing a multiline error.
return ErrNoFallbackImage
}
_, err = file.Write([]byte("FROM " + options.FallbackImage))
Expand Down Expand Up @@ -377,8 +382,10 @@ func Run(ctx context.Context, options Options) error {
switch {
case strings.Contains(err.Error(), "parsing dockerfile"):
fallback = true
fallbackErr = err
case strings.Contains(err.Error(), "error building stage"):
fallback = true
fallbackErr = err
case strings.Contains(err.Error(), "unexpected status code 401 Unauthorized"):
logf(codersdk.LogLevelError, "Unable to pull the provided image. Ensure your registry credentials are correct!")
}
Expand Down Expand Up @@ -539,8 +546,6 @@ func Run(ctx context.Context, options Options) error {

err = cmd.Run()
if err != nil {
fmt.Printf("FAILED! %s\n", err)
time.Sleep(time.Hour)
return fmt.Errorf("run init script: %w", err)
}
return nil
Expand Down
1 change: 1 addition & 0 deletions integration/integration_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -137,6 +137,7 @@ func TestBuildFailsFallback(t *testing.T) {
"DOCKERFILE_PATH=Dockerfile",
})
require.ErrorContains(t, err, envbuilder.ErrNoFallbackImage.Error())
require.ErrorContains(t, err, "dockerfile parse error")
})
t.Run("FailsBuild", func(t *testing.T) {
t.Parallel()
Expand Down
3 changes: 2 additions & 1 deletion log_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,11 @@ func TestSendLogsToCoder(t *testing.T) {
srvURL, err := url.Parse(srv.URL)
require.NoError(t, err)
client := agentsdk.New(srvURL)
sendLog, err := envbuilder.SendLogsToCoder(context.Background(), client, func(format string, args ...any) {
sendLog, closeFunc, err := envbuilder.SendLogsToCoder(context.Background(), client, func(format string, args ...any) {
t.Logf(format, args...)
})
require.NoError(t, err)
defer closeFunc()
sendLog(agentsdk.StartupLog{
Output: "Hello, world!",
})
Expand Down

0 comments on commit 66aa804

Please sign in to comment.