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  }