Files
notarius/internal/modules/integration/dnd_itemevents_runner_test.go

63 lines
1.5 KiB
Go

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: 4
pipelines:
items:
input: seriatim
chunk: generic
steps:
- id: identify-items
artifacts:
registry:
extract: dnd/item-registry
merge: appendorder
normalize: dnd/item-registry
- id: record-occurrences
references:
item_registry:
artifact:
step: identify-items
lane: registry
artifacts:
occurrences:
extract: dnd/item-events
merge: appendorder
normalize: dnd/item-events
`)
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: 4
pipelines:
items:
input: seriatim
chunk: generic
steps:
- id: record-occurrences
artifacts:
occurrences:
extract: dnd/item-events
`, "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")
}
}