mirror of
https://github.com/google/go-github.git
synced 2026-10-28 16:34:37 +08:00
252 lines
7.9 KiB
Go
252 lines
7.9 KiB
Go
// Copyright 2026 The go-github AUTHORS. All rights reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package github
|
|
|
|
import (
|
|
"fmt"
|
|
"net/http"
|
|
"testing"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
)
|
|
|
|
func TestOrganizationsService_CreateArtifactDeploymentRecord(t *testing.T) {
|
|
t.Parallel()
|
|
client, mux, _ := setup(t)
|
|
|
|
input := CreateArtifactDeploymentRequest{
|
|
Name: "test-n",
|
|
Digest: "sha256:123",
|
|
Version: new("v1.0.0"),
|
|
Status: "deployed",
|
|
LogicalEnvironment: "prod",
|
|
DeploymentName: "dep-1",
|
|
RuntimeRisks: []DeploymentRuntimeRisk{DeploymentRuntimeRiskCriticalResource, DeploymentRuntimeRiskInternetExposed},
|
|
GithubRepository: new("octo-org/octo-repo"),
|
|
Tags: map[string]string{
|
|
"data-access": "sensitive",
|
|
},
|
|
}
|
|
|
|
mux.HandleFunc("/orgs/o/artifacts/metadata/deployment-record", func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "POST")
|
|
testJSONBody(t, r, input)
|
|
fmt.Fprint(w, `{"total_count":1,"deployment_records":[{"id":1}]}`)
|
|
})
|
|
|
|
ctx := t.Context()
|
|
got, _, err := client.Organizations.CreateArtifactDeploymentRecord(ctx, "o", input)
|
|
if err != nil {
|
|
t.Errorf("CreateArtifactDeploymentRecord returned error: %v", err)
|
|
}
|
|
|
|
want := &ArtifactDeploymentResponse{
|
|
TotalCount: new(1),
|
|
DeploymentRecords: []*ArtifactDeploymentRecord{{ID: new(int64(1))}},
|
|
}
|
|
|
|
if !cmp.Equal(got, want) {
|
|
t.Errorf("CreateArtifactDeploymentRecord returned %+v, want %+v", got, want)
|
|
}
|
|
|
|
const methodName = "CreateArtifactDeploymentRecord"
|
|
testBadOptions(t, methodName, func() (err error) {
|
|
_, _, err = client.Organizations.CreateArtifactDeploymentRecord(ctx, "\n", input)
|
|
return err
|
|
})
|
|
|
|
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
|
|
got, resp, err := client.Organizations.CreateArtifactDeploymentRecord(ctx, "o", input)
|
|
if got != nil {
|
|
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
|
|
}
|
|
return resp, err
|
|
})
|
|
}
|
|
|
|
func TestOrganizationsService_SetClusterDeploymentRecords(t *testing.T) {
|
|
t.Parallel()
|
|
client, mux, _ := setup(t)
|
|
|
|
input := ClusterDeploymentRecordsRequest{
|
|
LogicalEnvironment: "prod",
|
|
PhysicalEnvironment: new("pacific-east"),
|
|
Deployments: []*ClusterArtifactDeployment{
|
|
{
|
|
Name: "awesome-image",
|
|
Digest: "sha256:abc",
|
|
DeploymentName: "dep-1",
|
|
Version: new("v2.0"),
|
|
Status: "deployed",
|
|
},
|
|
},
|
|
}
|
|
|
|
mux.HandleFunc("/orgs/o/artifacts/metadata/deployment-record/cluster/c1", func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "POST")
|
|
testJSONBody(t, r, input)
|
|
fmt.Fprint(w, `{"total_count":1,"deployment_records":[{"id":2}]}`)
|
|
})
|
|
|
|
ctx := t.Context()
|
|
got, _, err := client.Organizations.SetClusterDeploymentRecords(ctx, "o", "c1", input)
|
|
if err != nil {
|
|
t.Errorf("SetClusterDeploymentRecords returned error: %v", err)
|
|
}
|
|
|
|
want := &ArtifactDeploymentResponse{
|
|
TotalCount: new(1),
|
|
DeploymentRecords: []*ArtifactDeploymentRecord{{ID: new(int64(2))}},
|
|
}
|
|
if !cmp.Equal(got, want) {
|
|
t.Errorf("SetClusterDeploymentRecords returned %+v, want %+v", got, want)
|
|
}
|
|
|
|
const methodName = "SetClusterDeploymentRecords"
|
|
testBadOptions(t, methodName, func() (err error) {
|
|
_, _, err = client.Organizations.SetClusterDeploymentRecords(ctx, "\n", "\n", input)
|
|
return err
|
|
})
|
|
|
|
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
|
|
got, resp, err := client.Organizations.SetClusterDeploymentRecords(ctx, "o", "c1", input)
|
|
if got != nil {
|
|
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
|
|
}
|
|
return resp, err
|
|
})
|
|
}
|
|
|
|
func TestOrganizationsService_CreateArtifactStorageRecord(t *testing.T) {
|
|
t.Parallel()
|
|
client, mux, _ := setup(t)
|
|
|
|
input := CreateArtifactStorageRequest{
|
|
Name: "libfoo",
|
|
Digest: "sha256:123",
|
|
Version: new("v1.2.3"),
|
|
Path: new("target/libs"),
|
|
GithubRepository: new("org/repo"),
|
|
RegistryURL: "https://reg.example.com",
|
|
Status: new("active"),
|
|
}
|
|
|
|
mux.HandleFunc("/orgs/o/artifacts/metadata/storage-record", func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "POST")
|
|
testJSONBody(t, r, input)
|
|
fmt.Fprint(w, `{"total_count":1,"storage_records":[{"name":"libfoo"}]}`)
|
|
})
|
|
|
|
ctx := t.Context()
|
|
got, _, err := client.Organizations.CreateArtifactStorageRecord(ctx, "o", input)
|
|
if err != nil {
|
|
t.Errorf("CreateArtifactStorageRecord returned error: %v", err)
|
|
}
|
|
|
|
want := &ArtifactStorageResponse{
|
|
TotalCount: new(1),
|
|
StorageRecords: []*ArtifactStorageRecord{{Name: new("libfoo")}},
|
|
}
|
|
|
|
if !cmp.Equal(got, want) {
|
|
t.Errorf("CreateArtifactStorageRecord returned %+v, want %+v", got, want)
|
|
}
|
|
|
|
const methodName = "CreateArtifactStorageRecord"
|
|
testBadOptions(t, methodName, func() (err error) {
|
|
_, _, err = client.Organizations.CreateArtifactStorageRecord(ctx, "\n", input)
|
|
return err
|
|
})
|
|
|
|
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
|
|
got, resp, err := client.Organizations.CreateArtifactStorageRecord(ctx, "o", input)
|
|
if got != nil {
|
|
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
|
|
}
|
|
return resp, err
|
|
})
|
|
}
|
|
|
|
func TestOrganizationsService_ListArtifactDeploymentRecords(t *testing.T) {
|
|
t.Parallel()
|
|
client, mux, _ := setup(t)
|
|
|
|
mux.HandleFunc("/orgs/o/artifacts/sha256:abc/metadata/deployment-records", func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testFormValues(t, r, values{})
|
|
fmt.Fprint(w, `{"total_count":1,"deployment_records":[{"id":1, "runtime_risks": ["sensitive-data"]}]}`)
|
|
})
|
|
|
|
ctx := t.Context()
|
|
got, _, err := client.Organizations.ListArtifactDeploymentRecords(ctx, "o", "sha256:abc")
|
|
if err != nil {
|
|
t.Errorf("ListArtifactDeploymentRecords returned error: %v", err)
|
|
}
|
|
|
|
want := &ArtifactDeploymentResponse{
|
|
TotalCount: new(1),
|
|
DeploymentRecords: []*ArtifactDeploymentRecord{
|
|
{ID: new(int64(1)), RuntimeRisks: []DeploymentRuntimeRisk{DeploymentRuntimeRiskSensitiveData}},
|
|
},
|
|
}
|
|
if !cmp.Equal(got, want) {
|
|
t.Errorf("ListArtifactDeploymentRecords returned %+v, want %+v", got, want)
|
|
}
|
|
|
|
const methodName = "ListArtifactDeploymentRecords"
|
|
testBadOptions(t, methodName, func() (err error) {
|
|
_, _, err = client.Organizations.ListArtifactDeploymentRecords(ctx, "\n", "\n")
|
|
return err
|
|
})
|
|
|
|
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
|
|
got, resp, err := client.Organizations.ListArtifactDeploymentRecords(ctx, "o", "sha256:abc")
|
|
if got != nil {
|
|
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
|
|
}
|
|
return resp, err
|
|
})
|
|
}
|
|
|
|
func TestOrganizationsService_ListArtifactStorageRecords(t *testing.T) {
|
|
t.Parallel()
|
|
client, mux, _ := setup(t)
|
|
|
|
mux.HandleFunc("/orgs/o/artifacts/sha256:abc/metadata/storage-records", func(w http.ResponseWriter, r *http.Request) {
|
|
testMethod(t, r, "GET")
|
|
testFormValues(t, r, values{})
|
|
fmt.Fprint(w, `{"total_count":1,"storage_records":[{"name":"libfoo"}]}`)
|
|
})
|
|
|
|
ctx := t.Context()
|
|
got, _, err := client.Organizations.ListArtifactStorageRecords(ctx, "o", "sha256:abc")
|
|
if err != nil {
|
|
t.Errorf("ListArtifactStorageRecords returned error: %v", err)
|
|
}
|
|
|
|
want := &ArtifactStorageResponse{
|
|
TotalCount: new(1),
|
|
StorageRecords: []*ArtifactStorageRecord{{Name: new("libfoo")}},
|
|
}
|
|
if !cmp.Equal(got, want) {
|
|
t.Errorf("ListArtifactStorageRecords returned %+v, want %+v", got, want)
|
|
}
|
|
|
|
const methodName = "ListArtifactStorageRecords"
|
|
testBadOptions(t, methodName, func() (err error) {
|
|
_, _, err = client.Organizations.ListArtifactStorageRecords(ctx, "\n", "\n")
|
|
return err
|
|
})
|
|
|
|
testNewRequestAndDoFailure(t, methodName, client, func() (*Response, error) {
|
|
got, resp, err := client.Organizations.ListArtifactStorageRecords(ctx, "o", "sha256:abc")
|
|
if got != nil {
|
|
t.Errorf("testNewRequestAndDoFailure %v = %#v, want nil", methodName, got)
|
|
}
|
|
return resp, err
|
|
})
|
|
}
|