code.gitea.io/gitea@v1.21.7/services/webhook/packagist_test.go (about) 1 // Copyright 2022 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package webhook 5 6 import ( 7 "testing" 8 9 api "code.gitea.io/gitea/modules/structs" 10 webhook_module "code.gitea.io/gitea/modules/webhook" 11 12 "github.com/stretchr/testify/assert" 13 "github.com/stretchr/testify/require" 14 ) 15 16 func TestPackagistPayload(t *testing.T) { 17 t.Run("Create", func(t *testing.T) { 18 p := createTestPayload() 19 20 d := new(PackagistPayload) 21 pl, err := d.Create(p) 22 require.NoError(t, err) 23 require.Nil(t, pl) 24 }) 25 26 t.Run("Delete", func(t *testing.T) { 27 p := deleteTestPayload() 28 29 d := new(PackagistPayload) 30 pl, err := d.Delete(p) 31 require.NoError(t, err) 32 require.Nil(t, pl) 33 }) 34 35 t.Run("Fork", func(t *testing.T) { 36 p := forkTestPayload() 37 38 d := new(PackagistPayload) 39 pl, err := d.Fork(p) 40 require.NoError(t, err) 41 require.Nil(t, pl) 42 }) 43 44 t.Run("Push", func(t *testing.T) { 45 p := pushTestPayload() 46 47 d := new(PackagistPayload) 48 d.PackagistRepository.URL = "https://packagist.org/api/update-package?username=THEUSERNAME&apiToken=TOPSECRETAPITOKEN" 49 pl, err := d.Push(p) 50 require.NoError(t, err) 51 require.NotNil(t, pl) 52 require.IsType(t, &PackagistPayload{}, pl) 53 54 assert.Equal(t, "https://packagist.org/api/update-package?username=THEUSERNAME&apiToken=TOPSECRETAPITOKEN", pl.(*PackagistPayload).PackagistRepository.URL) 55 }) 56 57 t.Run("Issue", func(t *testing.T) { 58 p := issueTestPayload() 59 60 d := new(PackagistPayload) 61 p.Action = api.HookIssueOpened 62 pl, err := d.Issue(p) 63 require.NoError(t, err) 64 require.Nil(t, pl) 65 66 p.Action = api.HookIssueClosed 67 pl, err = d.Issue(p) 68 require.NoError(t, err) 69 require.Nil(t, pl) 70 }) 71 72 t.Run("IssueComment", func(t *testing.T) { 73 p := issueCommentTestPayload() 74 75 d := new(PackagistPayload) 76 pl, err := d.IssueComment(p) 77 require.NoError(t, err) 78 require.Nil(t, pl) 79 }) 80 81 t.Run("PullRequest", func(t *testing.T) { 82 p := pullRequestTestPayload() 83 84 d := new(PackagistPayload) 85 pl, err := d.PullRequest(p) 86 require.NoError(t, err) 87 require.Nil(t, pl) 88 }) 89 90 t.Run("PullRequestComment", func(t *testing.T) { 91 p := pullRequestCommentTestPayload() 92 93 d := new(PackagistPayload) 94 pl, err := d.IssueComment(p) 95 require.NoError(t, err) 96 require.Nil(t, pl) 97 }) 98 99 t.Run("Review", func(t *testing.T) { 100 p := pullRequestTestPayload() 101 p.Action = api.HookIssueReviewed 102 103 d := new(PackagistPayload) 104 pl, err := d.Review(p, webhook_module.HookEventPullRequestReviewApproved) 105 require.NoError(t, err) 106 require.Nil(t, pl) 107 }) 108 109 t.Run("Repository", func(t *testing.T) { 110 p := repositoryTestPayload() 111 112 d := new(PackagistPayload) 113 pl, err := d.Repository(p) 114 require.NoError(t, err) 115 require.Nil(t, pl) 116 }) 117 118 t.Run("Package", func(t *testing.T) { 119 p := packageTestPayload() 120 121 d := new(PackagistPayload) 122 pl, err := d.Package(p) 123 require.NoError(t, err) 124 require.Nil(t, pl) 125 }) 126 127 t.Run("Wiki", func(t *testing.T) { 128 p := wikiTestPayload() 129 130 d := new(PackagistPayload) 131 p.Action = api.HookWikiCreated 132 pl, err := d.Wiki(p) 133 require.NoError(t, err) 134 require.Nil(t, pl) 135 136 p.Action = api.HookWikiEdited 137 pl, err = d.Wiki(p) 138 require.NoError(t, err) 139 require.Nil(t, pl) 140 141 p.Action = api.HookWikiDeleted 142 pl, err = d.Wiki(p) 143 require.NoError(t, err) 144 require.Nil(t, pl) 145 }) 146 147 t.Run("Release", func(t *testing.T) { 148 p := pullReleaseTestPayload() 149 150 d := new(PackagistPayload) 151 pl, err := d.Release(p) 152 require.NoError(t, err) 153 require.Nil(t, pl) 154 }) 155 } 156 157 func TestPackagistJSONPayload(t *testing.T) { 158 p := pushTestPayload() 159 160 pl, err := new(PackagistPayload).Push(p) 161 require.NoError(t, err) 162 require.NotNil(t, pl) 163 require.IsType(t, &PackagistPayload{}, pl) 164 165 json, err := pl.JSONPayload() 166 require.NoError(t, err) 167 assert.NotEmpty(t, json) 168 }