From 4425a12c3c165878ee0e96a7b64492b632fc4da1 Mon Sep 17 00:00:00 2001 From: Shuhei Kitagawa Date: Wed, 3 Oct 2018 08:59:39 +0900 Subject: [PATCH] Add permissions to the part of metadata --- authentication_integration_test.go | 2 -- env_vars_integration_test.go | 53 +++++++++++++++++++++++++++--- lint_integration_test.go | 2 +- settings_integration_test.go | 4 +++ travis.go | 5 +++ 5 files changed, 59 insertions(+), 7 deletions(-) diff --git a/authentication_integration_test.go b/authentication_integration_test.go index cdaf883..6a2c178 100644 --- a/authentication_integration_test.go +++ b/authentication_integration_test.go @@ -13,8 +13,6 @@ import ( ) func TestAuthenticationService_UsingGithubToken(t *testing.T) { - t.Parallel() - token, res, err := integrationClient.Authentication.UsingGithubToken(context.TODO(), integrationGitHubToken) if err != nil { diff --git a/env_vars_integration_test.go b/env_vars_integration_test.go index 2b833bc..c1c5e37 100644 --- a/env_vars_integration_test.go +++ b/env_vars_integration_test.go @@ -9,6 +9,7 @@ package travis import ( "context" + "fmt" "net/http" "reflect" "testing" @@ -94,7 +95,18 @@ func TestEnvVarsService_Integration_CreateAndUpdateAndDeleteEnvVarByRepoId(t *te t.Fatalf("EnvVars.CreateByRepoId returned invalid http status: %s", res.Status) } - want := &EnvVar{Id: envVar.Id, Name: "TEST", Value: "test", Public: true} + want := &EnvVar{ + Id: envVar.Id, + Name: "TEST", + Value: "test", + Public: true, + Metadata: Metadata{ + Type: "env_var", + Href: fmt.Sprintf("/repo/20783933/env_var/%s", envVar.Id), + Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, + }, + } if !reflect.DeepEqual(envVar, want) { t.Errorf("EnvVars.CreateByRepoId returned %+v, want %+v", envVar, want) } @@ -114,7 +126,18 @@ func TestEnvVarsService_Integration_CreateAndUpdateAndDeleteEnvVarByRepoId(t *te t.Fatalf("EnvVars.UpdateByRepoId returned invalid http status: %s", res.Status) } - want = &EnvVar{Id: envVar.Id, Name: "NEW_TEST", Value: "", Public: false} + want = &EnvVar{ + Id: envVar.Id, + Name: "NEW_TEST", + Value: "", + Public: false, + Metadata: Metadata{ + Type: "env_var", + Href: fmt.Sprintf("/repo/20783933/env_var/%s", envVar.Id), + Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, + }, + } if !reflect.DeepEqual(envVar, want) { t.Errorf("EnvVars.UpdateByRepoId returned %+v, want %+v", envVar, want) } @@ -147,7 +170,18 @@ func TestEnvVarsService_Integration_CreateAndUpdateAndDeleteEnvVarByRepoSlug(t * t.Fatalf("EnvVars.CreateByRepoSlug returned invalid http status: %s", res.Status) } - want := &EnvVar{Id: envVar.Id, Name: "TEST", Value: "test", Public: true} + want := &EnvVar{ + Id: envVar.Id, + Name: "TEST", + Value: "test", + Public: true, + Metadata: Metadata{ + Type: "env_var", + Href: fmt.Sprintf("/repo/20783933/env_var/%s", envVar.Id), + Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, + }, + } if !reflect.DeepEqual(envVar, want) { t.Errorf("EnvVars.CreateByRepoSlug returned %+v, want %+v", envVar, want) } @@ -167,7 +201,18 @@ func TestEnvVarsService_Integration_CreateAndUpdateAndDeleteEnvVarByRepoSlug(t * t.Fatalf("EnvVar.UpdateByRepoSlug returned invalid http status: %s", res.Status) } - want = &EnvVar{Id: envVar.Id, Name: "NEW_TEST", Value: "", Public: false} + want = &EnvVar{ + Id: envVar.Id, + Name: "NEW_TEST", + Value: "", + Public: false, + Metadata: Metadata{ + Type: "env_var", + Href: fmt.Sprintf("/repo/20783933/env_var/%s", envVar.Id), + Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, + }, + } if !reflect.DeepEqual(envVar, want) { t.Errorf("EnvVars.UpdateByRepoSlug returned %+v, want %+v", envVar, want) } diff --git a/lint_integration_test.go b/lint_integration_test.go index e653066..2b37657 100644 --- a/lint_integration_test.go +++ b/lint_integration_test.go @@ -21,7 +21,7 @@ func TestLintService_Integration_Lint(t *testing.T) { } if res.StatusCode != http.StatusOK { - t.Fatalf("#invalid http status: %s", res.Status) + t.Fatalf("invalid http status: %s", res.Status) } if len(warnings) == 0 { diff --git a/settings_integration_test.go b/settings_integration_test.go index 54a0845..bef2100 100644 --- a/settings_integration_test.go +++ b/settings_integration_test.go @@ -33,6 +33,7 @@ func TestSettingsService_Integration_FindByRepoId(t *testing.T) { Type: "setting", Href: "/repo/20783933/setting/builds_only_with_travis_yml", Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, }, } @@ -59,6 +60,7 @@ func TestSettingsService_Integration_FindByRepoSlug(t *testing.T) { Type: "setting", Href: "/repo/20783933/setting/builds_only_with_travis_yml", Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, }, } @@ -118,6 +120,7 @@ func TestSettingsService_Integration_UpdateByRepoIdAndSlug(t *testing.T) { Type: "setting", Href: "/repo/20783933/setting/builds_only_with_travis_yml", Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, }, } @@ -145,6 +148,7 @@ func TestSettingsService_Integration_UpdateByRepoIdAndSlug(t *testing.T) { Type: "setting", Href: "/repo/20783933/setting/builds_only_with_travis_yml", Representation: "standard", + Permissions: Permissions{"read": true, "write": true}, }, } diff --git a/travis.go b/travis.go index 5a879db..19d3643 100644 --- a/travis.go +++ b/travis.go @@ -301,4 +301,9 @@ type Metadata struct { Href string `json:"@href,omitempty"` // The representation of data returned from the API, standard or minimal Representation string `json:"@representation,omitempty"` + // The permissions of data returned from the API + Permissions Permissions `json:"@permissions,omitempty"` } + +// Permissions represents permissions of Travis CI API +type Permissions map[string]bool