Expand family publish policies into concrete rules
This commit is contained in:
@@ -297,6 +297,35 @@ func TestArtifactFamiliesRejectInvalidMemberDependenciesAndSources(t *testing.T)
|
||||
}
|
||||
}
|
||||
|
||||
func TestFamilyPublishRulesExpandToConcreteArtifacts(t *testing.T) {
|
||||
required := true
|
||||
cfg := &PipelineConfig{
|
||||
Scriptorium: &ScriptoriumConfig{Artifacts: map[string]ScriptoriumArtifactConfig{
|
||||
"character_meta_alpha": {OutputPath: "artifacts/characters/alpha/meta.md"},
|
||||
"character_meta_zeta": {OutputPath: "artifacts/characters/zeta/meta.md"},
|
||||
}},
|
||||
Publish: &PublishConfig{},
|
||||
resolution: &pipelineResolutionMetadata{publishDeclared: true},
|
||||
}
|
||||
catalog := ArtifactFamilyCatalog{Families: map[string]ArtifactFamilyOrigin{
|
||||
"character_meta": {Members: []string{"character_meta_alpha", "character_meta_zeta"}, Publish: &ScriptoriumArtifactFamilyPublishConfig{Enabled: true, Required: required, DestPattern: "published/{character_id}.md"}},
|
||||
}, Members: map[string]ArtifactFamilyMemberOrigin{
|
||||
"character_meta_alpha": {CharacterID: "alpha"}, "character_meta_zeta": {CharacterID: "zeta"},
|
||||
}}
|
||||
if err := expandFamilyPublishRules(cfg, catalog); err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if got := cfg.Publish.Outputs; len(got) != 2 || got[0].Source != "narratio.artifact.character_meta_alpha" || got[0].Dest != "published/alpha.md" || got[0].Required == nil || !*got[0].Required {
|
||||
t.Fatalf("generated publish rules = %#v", got)
|
||||
}
|
||||
cfg.Publish.Outputs = nil
|
||||
catalog.Families["character_meta"] = ArtifactFamilyOrigin{Members: []string{"character_meta_alpha"}, Publish: &ScriptoriumArtifactFamilyPublishConfig{Enabled: true}}
|
||||
cfg.resolution.publishDeclared = false
|
||||
if err := expandFamilyPublishRules(cfg, catalog); err == nil || !strings.Contains(err.Error(), "requires pipeline.publish") {
|
||||
t.Fatalf("missing publish error = %v", err)
|
||||
}
|
||||
}
|
||||
|
||||
const validFamilyYAML = `
|
||||
character_meta:
|
||||
enabled: true
|
||||
|
||||
Reference in New Issue
Block a user