package rewind

import (
	"os"
	"testing"

	"github.com/stretchr/testify/require"
)

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

	for _, filename := range []string{"operation.go", "store.go"} {
		sourceBytes, err := os.ReadFile(filename)
		require.NoError(t, err)
		source := string(sourceBytes)
		require.NotContains(t, source, "thread_read_states", filename)
		require.NotContains(t, source, "thread_subscriptions", filename)
	}
}

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

	for _, filename := range []string{"operation.go", "planning.go", "store.go"} {
		sourceBytes, err := os.ReadFile(filename)
		require.NoError(t, err)
		source := string(sourceBytes)
		require.NotContains(t, source, "DELETE FROM reply"+"_"+"thread"+"_"+"stats", filename)
		require.NotContains(t, source, "DELETE FROM reply"+"_"+"threads", filename)
		require.NotContains(t, source, "JOIN reply"+"_"+"threads", filename)
		require.NotContains(t, source, "FROM reply"+"_"+"threads", filename)
		require.NotContains(t, source, "UPDATE reply"+"_"+"thread"+"_"+"stats", filename)
	}
}
