63 lines
1.5 KiB
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-occurrences
|
|
merge: appendorder
|
|
normalize: 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: 4
|
|
pipelines:
|
|
items:
|
|
input: seriatim
|
|
chunk: generic
|
|
steps:
|
|
- id: record-occurrences
|
|
artifacts:
|
|
occurrences:
|
|
extract: 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")
|
|
}
|
|
}
|