code.gitea.io/gitea@v1.22.3/models/migrations/v1_22/v293_test.go (about)

     1  // Copyright 2024 The Gitea Authors. All rights reserved.
     2  // SPDX-License-Identifier: MIT
     3  
     4  package v1_22 //nolint
     5  
     6  import (
     7  	"testing"
     8  
     9  	"code.gitea.io/gitea/models/db"
    10  	"code.gitea.io/gitea/models/migrations/base"
    11  	"code.gitea.io/gitea/models/project"
    12  
    13  	"github.com/stretchr/testify/assert"
    14  )
    15  
    16  func Test_CheckProjectColumnsConsistency(t *testing.T) {
    17  	// Prepare and load the testing database
    18  	x, deferable := base.PrepareTestEnv(t, 0, new(project.Project), new(project.Board))
    19  	defer deferable()
    20  	if x == nil || t.Failed() {
    21  		return
    22  	}
    23  
    24  	assert.NoError(t, CheckProjectColumnsConsistency(x))
    25  
    26  	// check if default board was added
    27  	var defaultBoard project.Board
    28  	has, err := x.Where("project_id=? AND `default` = ?", 1, true).Get(&defaultBoard)
    29  	assert.NoError(t, err)
    30  	assert.True(t, has)
    31  	assert.Equal(t, int64(1), defaultBoard.ProjectID)
    32  	assert.True(t, defaultBoard.Default)
    33  
    34  	// check if multiple defaults, previous were removed and last will be kept
    35  	expectDefaultBoard, err := project.GetBoard(db.DefaultContext, 2)
    36  	assert.NoError(t, err)
    37  	assert.Equal(t, int64(2), expectDefaultBoard.ProjectID)
    38  	assert.False(t, expectDefaultBoard.Default)
    39  
    40  	expectNonDefaultBoard, err := project.GetBoard(db.DefaultContext, 3)
    41  	assert.NoError(t, err)
    42  	assert.Equal(t, int64(2), expectNonDefaultBoard.ProjectID)
    43  	assert.True(t, expectNonDefaultBoard.Default)
    44  }