code.gitea.io/gitea@v1.22.3/models/packages/package_test.go (about)

     1  // Copyright 2022 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package packages_test
     5  
     6  import (
     7  	"testing"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	packages_model "code.gitea.io/gitea/models/packages"
    11  	"code.gitea.io/gitea/models/unittest"
    12  	user_model "code.gitea.io/gitea/models/user"
    13  
    14  	_ "code.gitea.io/gitea/models"
    15  	_ "code.gitea.io/gitea/models/actions"
    16  	_ "code.gitea.io/gitea/models/activities"
    17  
    18  	"github.com/stretchr/testify/assert"
    19  )
    20  
    21  func TestMain(m *testing.M) {
    22  	unittest.MainTest(m)
    23  }
    24  
    25  func TestHasOwnerPackages(t *testing.T) {
    26  	assert.NoError(t, unittest.PrepareTestDatabase())
    27  
    28  	owner := unittest.AssertExistsAndLoadBean(t, &user_model.User{ID: 1})
    29  
    30  	p, err := packages_model.TryInsertPackage(db.DefaultContext, &packages_model.Package{
    31  		OwnerID:   owner.ID,
    32  		LowerName: "package",
    33  	})
    34  	assert.NotNil(t, p)
    35  	assert.NoError(t, err)
    36  
    37  	// A package without package versions gets automatically cleaned up and should return false
    38  	has, err := packages_model.HasOwnerPackages(db.DefaultContext, owner.ID)
    39  	assert.False(t, has)
    40  	assert.NoError(t, err)
    41  
    42  	pv, err := packages_model.GetOrInsertVersion(db.DefaultContext, &packages_model.PackageVersion{
    43  		PackageID:    p.ID,
    44  		LowerVersion: "internal",
    45  		IsInternal:   true,
    46  	})
    47  	assert.NotNil(t, pv)
    48  	assert.NoError(t, err)
    49  
    50  	// A package with an internal package version gets automatically cleaned up and should return false
    51  	has, err = packages_model.HasOwnerPackages(db.DefaultContext, owner.ID)
    52  	assert.False(t, has)
    53  	assert.NoError(t, err)
    54  
    55  	pv, err = packages_model.GetOrInsertVersion(db.DefaultContext, &packages_model.PackageVersion{
    56  		PackageID:    p.ID,
    57  		LowerVersion: "normal",
    58  		IsInternal:   false,
    59  	})
    60  	assert.NotNil(t, pv)
    61  	assert.NoError(t, err)
    62  
    63  	// A package with a normal package version should return true
    64  	has, err = packages_model.HasOwnerPackages(db.DefaultContext, owner.ID)
    65  	assert.True(t, has)
    66  	assert.NoError(t, err)
    67  }