package schema

import (
	"sync"
	"testing"

	"github.com/stretchr/testify/require"
	gormschema "gorm.io/gorm/schema"
)

func TestBackupPurposeIndexAllowsReplacementAfterSoftDelete(t *testing.T) {
	t.Parallel()

	parsed, err := gormschema.Parse(&Backup{}, &sync.Map{}, gormschema.NamingStrategy{})
	require.NoError(t, err)

	for _, index := range parsed.ParseIndexes() {
		if index.Name != "idx_backup_purpose_cluster" {
			continue
		}
		require.Empty(t, index.Class)
		require.Len(t, index.Fields, 2)
		require.Equal(t, "cluster_id", index.Fields[0].DBName)
		require.Equal(t, "purpose", index.Fields[1].DBName)
		return
	}
	t.Fatal("idx_backup_purpose_cluster is missing")
}
