Skip to content

Commit

Permalink
Use the runner v3 API
Browse files Browse the repository at this point in the history
  • Loading branch information
christian-stephen committed Aug 15, 2024
1 parent 30a5049 commit 2c426d6
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 2 deletions.
9 changes: 7 additions & 2 deletions cmd/runner/runner.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,12 @@ type runnerOpts struct {
r running
}

func NewCommand(config *settings.Config, preRunE validator.Validator) *cobra.Command {
func NewCommand(rootConfig *settings.Config, preRunE validator.Validator) *cobra.Command {
// The runner API versioning is decoupled from the other Circle APIs. Here we make a copy of the root configuration,
// and update the rest endpoint accordingly
config := *rootConfig
config.RestEndpoint = "/api/v3"

var opts runnerOpts
cmd := &cobra.Command{
Use: "runner",
Expand All @@ -27,7 +32,7 @@ func NewCommand(config *settings.Config, preRunE validator.Validator) *cobra.Com
} else {
host = config.Host
}
opts.r = runner.New(rest.NewFromConfig(host, config))
opts.r = runner.New(rest.NewFromConfig(host, &config))
},
}

Expand Down
31 changes: 31 additions & 0 deletions cmd/runner/runner_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package runner

import (
"net/http"
"net/http/httptest"
"testing"

"gotest.tools/v3/assert"
"gotest.tools/v3/assert/cmp"

"github.com/CircleCI-Public/circleci-cli/settings"
)

func Test_NewCommand(t *testing.T) {
t.Run("Runner uses /api/v3", func(t *testing.T) {
server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
assert.Check(t, cmp.Equal(r.URL.EscapedPath(), "/api/v3/runner"))

w.Header().Set("Content-Type", "application/json")
_, err := w.Write([]byte(`{"items":[]}`))
assert.NilError(t, err)
w.WriteHeader(http.StatusOK)
}))
t.Cleanup(server.Close)

cmd := NewCommand(&settings.Config{Host: server.URL, HTTPClient: &http.Client{}}, nil)
cmd.SetArgs([]string{"instance", "ls", "my-namespace"})
err := cmd.Execute()
assert.NilError(t, err)
})
}

0 comments on commit 2c426d6

Please sign in to comment.