package plan

import (
	"testing"

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

func TestLoadBytesParsesCompiledPlan(t *testing.T) {
	cfg, stages, err := Load(goldenPlanPath)
	assert.NoError(t, err)
	cfg.Tenants = []string{"1001:0", "1002:0"}
	compiled, err := RenderCompiled(cfg, stages)
	assert.NoError(t, err)

	got, gotStages, err := LoadBytes([]byte(compiled))
	assert.NoError(t, err)
	assert.Equal(t, []string{"1001:0", "1002:0"}, got.Tenants)
	assert.NotEmpty(t, gotStages[StageMigration])
}

func TestLoadBytesRejectsGarbage(t *testing.T) {
	_, _, err := LoadBytes([]byte(`{not-json`))
	assert.Error(t, err)
}
