package database

import (
	"testing"

	"github.com/stretchr/testify/require"
	"github.com/tidbcloud/AgentTeam/internal/store/kb"
)

func TestMigrateCreatesMinimalKBSourceContentMapping(t *testing.T) {
	db, err := open(Config{DSN: "file:meshx_kb_source_content_mapping?mode=memory&cache=shared"}, false)
	require.NoError(t, err)
	defer func() { require.NoError(t, Close(db)) }()

	require.NoError(t, Migrate(db))
	require.True(t, db.Migrator().HasTable(&kb.SourceContentMapping{}))
	require.True(t, db.Migrator().HasTable(&kb.SourceSearchDocument{}))
	for _, column := range []string{"source_content_id", "source_content_version_id", "source_content_verified_at"} {
		require.True(t, db.Migrator().HasColumn(&kb.SourceRevision{}, column), column)
	}
	require.True(t, db.Migrator().HasIndex(&kb.SourceContentMapping{}, "uk_kb_source_content_mapping_source"))
	require.True(t, db.Migrator().HasColumn(&kb.SourceContentMapping{}, "source_committed_at"))
	require.True(t, db.Migrator().HasColumn(&kb.SourceContentMapping{}, "search_projection_digest"))
	require.False(t, db.Migrator().HasTable("knowledge_base_source_content_migration_jobs"), "best-effort importer has no durable job subsystem")
}
