mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2024-11-08 19:01:26 +01:00
fb1a2a13f0
Original Issue: https://github.com/go-gitea/gitea/issues/22102 This addition would be a big benefit for design and art teams using the issue tracking. The preview will be the latest "image type" attachments on an issue- simple, and allows for automatic updates of the cover image as issue progress is made! This would make Gitea competitive with Trello... wouldn't it be amazing to say goodbye to Atlassian products? Ha. First image is the most recent, the SQL will fetch up to 5 latest images (URL string). All images supported by browsers plus upcoming formats: *.avif *.bmp *.gif *.jpg *.jpeg *.jxl *.png *.svg *.webp The CSS will try to center-align images until it cannot, then it will left align with overflow hidden. Single images get to be slightly larger! Tested so far on: Chrome, Firefox, Android Chrome, Android Firefox. Current revision with light and dark themes: ![image](https://user-images.githubusercontent.com/24665/207066878-58e6bf73-0c93-4caa-8d40-38f4432b3578.png) ![image](https://user-images.githubusercontent.com/24665/207066555-293f65c3-e706-4888-8516-de8ec632d638.png) --------- Co-authored-by: Jason Song <i@wolfogre.com> Co-authored-by: Lunny Xiao <xiaolunwen@gmail.com> Co-authored-by: delvh <dev.lh@web.de>
84 lines
2 KiB
Go
84 lines
2 KiB
Go
// Copyright 2020 The Gitea Authors. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
package project
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"code.gitea.io/gitea/models/db"
|
|
"code.gitea.io/gitea/models/unittest"
|
|
"code.gitea.io/gitea/modules/timeutil"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestIsProjectTypeValid(t *testing.T) {
|
|
const UnknownType Type = 15
|
|
|
|
cases := []struct {
|
|
typ Type
|
|
valid bool
|
|
}{
|
|
{TypeIndividual, false},
|
|
{TypeRepository, true},
|
|
{TypeOrganization, true},
|
|
{UnknownType, false},
|
|
}
|
|
|
|
for _, v := range cases {
|
|
assert.Equal(t, v.valid, IsTypeValid(v.typ))
|
|
}
|
|
}
|
|
|
|
func TestGetProjects(t *testing.T) {
|
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
|
|
|
projects, _, err := FindProjects(db.DefaultContext, SearchOptions{RepoID: 1})
|
|
assert.NoError(t, err)
|
|
|
|
// 1 value for this repo exists in the fixtures
|
|
assert.Len(t, projects, 1)
|
|
|
|
projects, _, err = FindProjects(db.DefaultContext, SearchOptions{RepoID: 3})
|
|
assert.NoError(t, err)
|
|
|
|
// 1 value for this repo exists in the fixtures
|
|
assert.Len(t, projects, 1)
|
|
}
|
|
|
|
func TestProject(t *testing.T) {
|
|
assert.NoError(t, unittest.PrepareTestDatabase())
|
|
|
|
project := &Project{
|
|
Type: TypeRepository,
|
|
BoardType: BoardTypeBasicKanban,
|
|
CardType: CardTypeTextOnly,
|
|
Title: "New Project",
|
|
RepoID: 1,
|
|
CreatedUnix: timeutil.TimeStampNow(),
|
|
CreatorID: 2,
|
|
}
|
|
|
|
assert.NoError(t, NewProject(project))
|
|
|
|
_, err := GetProjectByID(db.DefaultContext, project.ID)
|
|
assert.NoError(t, err)
|
|
|
|
// Update project
|
|
project.Title = "Updated title"
|
|
assert.NoError(t, UpdateProject(db.DefaultContext, project))
|
|
|
|
projectFromDB, err := GetProjectByID(db.DefaultContext, project.ID)
|
|
assert.NoError(t, err)
|
|
|
|
assert.Equal(t, project.Title, projectFromDB.Title)
|
|
|
|
assert.NoError(t, ChangeProjectStatus(project, true))
|
|
|
|
// Retrieve from DB afresh to check if it is truly closed
|
|
projectFromDB, err = GetProjectByID(db.DefaultContext, project.ID)
|
|
assert.NoError(t, err)
|
|
|
|
assert.True(t, projectFromDB.IsClosed)
|
|
}
|