gitea/models/repo/release_test.go

78 lines
2.0 KiB
Go

// Copyright 2023 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package repo
import (
"testing"
"code.gitea.io/gitea/models/unittest"
"code.gitea.io/gitea/modules/timeutil"
"github.com/stretchr/testify/assert"
)
func TestMigrate_InsertReleases(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
a := &Attachment{
UUID: "a0eebc91-9c0c-4ef7-bb6e-6bb9bd380a12",
}
r := &Release{
Attachments: []*Attachment{a},
}
err := InsertReleases(t.Context(), r)
assert.NoError(t, err)
}
func Test_FindTagsByCommitIDs(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
sha1Rels, err := FindTagsByCommitIDs(t.Context(), 1, "65f1bf27bc3bf70f64657658635e66094edbcb4d")
assert.NoError(t, err)
assert.Len(t, sha1Rels, 1)
rels := sha1Rels["65f1bf27bc3bf70f64657658635e66094edbcb4d"]
assert.Len(t, rels, 3)
assert.Equal(t, "v1.1", rels[0].TagName)
assert.Equal(t, "delete-tag", rels[1].TagName)
assert.Equal(t, "v1.0", rels[2].TagName)
}
func TestGetPreviousPublishedRelease(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
current := unittest.AssertExistsAndLoadBean(t, &Release{ID: 8})
prev, err := GetPreviousPublishedRelease(t.Context(), current.RepoID, current)
assert.NoError(t, err)
assert.EqualValues(t, 7, prev.ID)
}
func TestGetPreviousPublishedRelease_NoPublishedCandidate(t *testing.T) {
assert.NoError(t, unittest.PrepareTestDatabase())
repoID := int64(1)
draft := &Release{
RepoID: repoID,
PublisherID: 1,
TagName: "draft-prev",
LowerTagName: "draft-prev",
IsDraft: true,
CreatedUnix: timeutil.TimeStamp(2),
}
current := &Release{
RepoID: repoID,
PublisherID: 1,
TagName: "published-current",
LowerTagName: "published-current",
CreatedUnix: timeutil.TimeStamp(3),
}
err := InsertReleases(t.Context(), draft, current)
assert.NoError(t, err)
_, err = GetPreviousPublishedRelease(t.Context(), repoID, current)
assert.Error(t, err)
assert.True(t, IsErrReleaseNotExist(err))
}