2024-03-27 23:54:32 +03:00
// Copyright 2024 The Gitea Authors. All rights reserved.
// SPDX-License-Identifier: MIT
package v1_22 //nolint
import (
"testing"
"code.gitea.io/gitea/models/db"
"code.gitea.io/gitea/models/migrations/base"
"code.gitea.io/gitea/models/project"
"github.com/stretchr/testify/assert"
)
func Test_CheckProjectColumnsConsistency ( t * testing . T ) {
// Prepare and load the testing database
2024-05-27 11:59:54 +03:00
x , deferable := base . PrepareTestEnv ( t , 0 , new ( project . Project ) , new ( project . Column ) )
2024-03-27 23:54:32 +03:00
defer deferable ( )
if x == nil || t . Failed ( ) {
return
}
assert . NoError ( t , CheckProjectColumnsConsistency ( x ) )
2024-05-27 11:59:54 +03:00
// check if default column was added
var defaultColumn project . Column
has , err := x . Where ( "project_id=? AND `default` = ?" , 1 , true ) . Get ( & defaultColumn )
2024-03-27 23:54:32 +03:00
assert . NoError ( t , err )
assert . True ( t , has )
2024-05-27 11:59:54 +03:00
assert . Equal ( t , int64 ( 1 ) , defaultColumn . ProjectID )
assert . True ( t , defaultColumn . Default )
2024-03-27 23:54:32 +03:00
2024-03-28 19:14:30 +03:00
// check if multiple defaults, previous were removed and last will be kept
2024-05-27 11:59:54 +03:00
expectDefaultColumn , err := project . GetColumn ( db . DefaultContext , 2 )
2024-03-27 23:54:32 +03:00
assert . NoError ( t , err )
2024-05-27 11:59:54 +03:00
assert . Equal ( t , int64 ( 2 ) , expectDefaultColumn . ProjectID )
assert . False ( t , expectDefaultColumn . Default )
2024-03-27 23:54:32 +03:00
2024-05-27 11:59:54 +03:00
expectNonDefaultColumn , err := project . GetColumn ( db . DefaultContext , 3 )
2024-03-27 23:54:32 +03:00
assert . NoError ( t , err )
2024-05-27 11:59:54 +03:00
assert . Equal ( t , int64 ( 2 ) , expectNonDefaultColumn . ProjectID )
assert . True ( t , expectNonDefaultColumn . Default )
2024-03-27 23:54:32 +03:00
}