code.gitea.io/gitea@v1.22.3/models/migrations/v1_22/v287_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  	"fmt"
     8  	"testing"
     9  
    10  	"code.gitea.io/gitea/models/migrations/base"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func Test_UpdateBadgeColName(t *testing.T) {
    16  	type Badge struct {
    17  		ID          int64 `xorm:"pk autoincr"`
    18  		Description string
    19  		ImageURL    string
    20  	}
    21  
    22  	// Prepare and load the testing database
    23  	x, deferable := base.PrepareTestEnv(t, 0, new(Badge))
    24  	defer deferable()
    25  	if x == nil || t.Failed() {
    26  		return
    27  	}
    28  
    29  	oldBadges := []*Badge{
    30  		{Description: "Test Badge 1", ImageURL: "https://example.com/badge1.png"},
    31  		{Description: "Test Badge 2", ImageURL: "https://example.com/badge2.png"},
    32  		{Description: "Test Badge 3", ImageURL: "https://example.com/badge3.png"},
    33  	}
    34  
    35  	for _, badge := range oldBadges {
    36  		_, err := x.Insert(badge)
    37  		assert.NoError(t, err)
    38  	}
    39  
    40  	if err := UseSlugInsteadOfIDForBadges(x); err != nil {
    41  		assert.NoError(t, err)
    42  		return
    43  	}
    44  
    45  	got := []BadgeUnique{}
    46  	if err := x.Table("badge").Asc("id").Find(&got); !assert.NoError(t, err) {
    47  		return
    48  	}
    49  
    50  	for i, e := range oldBadges {
    51  		got := got[i+1] // 1 is in the badge.yml
    52  		assert.Equal(t, e.ID, got.ID)
    53  		assert.Equal(t, fmt.Sprintf("%d", e.ID), got.Slug)
    54  	}
    55  
    56  	// TODO: check if badges have been updated
    57  }