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

63 lines
1.6 KiB
Go
Raw Permalink Normal View History

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