package packs

import (
	"strings"
	"testing"
)

func TestSourceBackedAutoNumberComponentStaysOutOfMetadataMegaFile(t *testing.T) {
	metadataSrc := readPacksSourceForStructureTest(t, "source_backed_metadata_components.go")
	autoNumberSrc := readPacksSourceForStructureTest(t, "source_backed_auto_number_component.go")

	for _, symbol := range []string{
		"func newSourceBackedAutoNumberFormatComponent(",
		"type sourceBackedAutoNumberFormatRow struct",
		"func sourceBackedAutoNumberFormatProjection(",
		"func liveSourceBackedAutoNumberFormatProjection(",
		"func newSourceBackedAutoNumberCounterComponent(",
		"func canonicalAutoNumberTokenRefsForSeed(",
		"func canonicalAutoNumberTokenRefsString(",
		"func registerAutoNumberDeclaredSeedsFromFormats(",
		"func sourceBackedBootstrapSeedsFromAutoNumberFormats(",
	} {
		if strings.Contains(metadataSrc, symbol) {
			t.Fatalf("source_backed_metadata_components.go still owns auto-number symbol %q", symbol)
		}
		if !strings.Contains(autoNumberSrc, symbol) {
			t.Fatalf("source_backed_auto_number_component.go is missing auto-number symbol %q", symbol)
		}
	}
}
