package integration_test import ( "strings" "testing" "gitea.maximumdirect.net/eric/notarius/internal/core/config" ) func TestItemOccurrenceConfigurationRequiresEarlierItemRegistry(t *testing.T) { registries := productionNPCRegistries(t) cfg, err := configFromYAML(` version: 5 pipelines: items: input: {module: seriatim} chunk: {module: generic} steps: - id: identify-items artifacts: registry: extract: {module: dnd/item-registry} merge: {module: appendorder} normalize: {module: dnd/item-registry} - id: record-occurrences references: item_registry: artifact: step: identify-items lane: registry artifacts: occurrences: extract: {module: dnd/item-occurrences} merge: {module: appendorder} normalize: {module: dnd/item-occurrences} `) if err != nil { t.Fatal(err) } if _, err := cfg.Resolve(config.ResolveInput{PipelineID: "items", Catalog: moduleCatalog(registries)}); err != nil { t.Fatalf("Resolve() error = %v", err) } broken, err := configFromYAML(strings.Replace(` version: 5 pipelines: items: input: {module: seriatim} chunk: {module: generic} steps: - id: record-occurrences artifacts: occurrences: extract: {module: dnd/item-occurrences} `, "record-occurrences", "record-occurrences", 1)) if err != nil { t.Fatal(err) } if _, err := broken.Resolve(config.ResolveInput{PipelineID: "items", Catalog: moduleCatalog(registries)}); err == nil { t.Fatal("Resolve() error = nil, want required item registry") } }