Path: blob/main/components/public-api/go/client/client_test.go
2500 views
// Copyright (c) 2022 Gitpod GmbH. All rights reserved.1// Licensed under the GNU Affero General Public License (AGPL).2// See License.AGPL.txt in the project root for license information.34package client56import (7"net/http"8"testing"910"github.com/stretchr/testify/require"11)1213func TestNew(t *testing.T) {1415t.Run("with all options", func(t *testing.T) {16expectedOptions := &options{17url: "https://foo.bar.com",18client: &http.Client{},19credentials: "my_awesome_credentials",20}21gitpod, err := New(22WithURL(expectedOptions.url),23WithCredentials(expectedOptions.credentials),24WithHTTPClient(expectedOptions.client),25)26require.NoError(t, err)27require.Equal(t, expectedOptions, gitpod.cfg)2829require.NotNil(t, gitpod.PersonalAccessTokens)30require.NotNil(t, gitpod.Workspaces)31require.NotNil(t, gitpod.Projects)32require.NotNil(t, gitpod.PersonalAccessTokens)33require.NotNil(t, gitpod.User)34})3536t.Run("fails when no credentials specified", func(t *testing.T) {37_, err := New()38require.Error(t, err)39})4041t.Run("defaults to https://api.gitpod.io", func(t *testing.T) {42gitpod, err := New(WithCredentials("foo"))43require.NoError(t, err)4445require.Equal(t, "https://api.gitpod.io", gitpod.cfg.url)46})4748}495051