mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-25 03:22:36 +00:00 
			
		
		
		
	- Make use of `test.MockVariableValue` to override variables for the duration of the test. - Don't needlessly call `onGiteaRun`, its only needed when a HTTP server needs to be called by the code. - When `onGiteaRun` is used, make use of the passed parameters, such as the passed `*testing.T` variable and `*url.URL` (this also avoids needing to serve the routers in the test code again). - Use `(*url.URL).JoinPath` to craft new URLs. - Don't override `setting.AppURL` & `setting.Database.LogSQL` when its does not affect the test. - Add empty fixture files for `FederatedUser` & `FederationHost` so they are truncated and do not persist between tests.
		
			
				
	
	
		
			48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			48 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Copyright 2021 The Gitea Authors. All rights reserved.
 | |
| // SPDX-License-Identifier: MIT
 | |
| 
 | |
| package attachment
 | |
| 
 | |
| import (
 | |
| 	"os"
 | |
| 	"path/filepath"
 | |
| 	"testing"
 | |
| 
 | |
| 	"code.gitea.io/gitea/models/db"
 | |
| 	repo_model "code.gitea.io/gitea/models/repo"
 | |
| 	"code.gitea.io/gitea/models/unittest"
 | |
| 	user_model "code.gitea.io/gitea/models/user"
 | |
| 
 | |
| 	_ "code.gitea.io/gitea/models/actions"
 | |
| 	_ "code.gitea.io/gitea/models/forgefed"
 | |
| 
 | |
| 	"github.com/stretchr/testify/assert"
 | |
| 	"github.com/stretchr/testify/require"
 | |
| )
 | |
| 
 | |
| func TestMain(m *testing.M) {
 | |
| 	unittest.MainTest(m)
 | |
| }
 | |
| 
 | |
| func TestUploadAttachment(t *testing.T) {
 | |
| 	require.NoError(t, unittest.PrepareTestDatabase())
 | |
| 
 | |
| 	user := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
 | |
| 
 | |
| 	fPath := "./attachment_test.go"
 | |
| 	f, err := os.Open(fPath)
 | |
| 	require.NoError(t, err)
 | |
| 	defer f.Close()
 | |
| 
 | |
| 	attach, err := NewAttachment(db.DefaultContext, &repo_model.Attachment{
 | |
| 		RepoID:     1,
 | |
| 		UploaderID: user.ID,
 | |
| 		Name:       filepath.Base(fPath),
 | |
| 	}, f, -1)
 | |
| 	require.NoError(t, err)
 | |
| 
 | |
| 	attachment, err := repo_model.GetAttachmentByUUID(db.DefaultContext, attach.UUID)
 | |
| 	require.NoError(t, err)
 | |
| 	assert.EqualValues(t, user.ID, attachment.UploaderID)
 | |
| 	assert.Equal(t, int64(0), attachment.DownloadCount)
 | |
| }
 |