152 lines
4.7 KiB
Go
152 lines
4.7 KiB
Go
package artifacts
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestRuntimeTranscriptArtifacts(t *testing.T) {
|
|
want := []TranscriptArtifactSpec{
|
|
{
|
|
SourceID: ArtifactTranscriptBase,
|
|
CanonicalRelPath: TranscriptPathBase,
|
|
ProducerStage: "merge",
|
|
OutputKind: TranscriptOutputKindBase,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptPolished,
|
|
CanonicalRelPath: TranscriptPathPolished,
|
|
ProducerStage: "polish",
|
|
OutputKind: TranscriptOutputKindPolished,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinal,
|
|
CanonicalRelPath: TranscriptPathFinal,
|
|
ProducerStage: "normalize",
|
|
OutputKind: TranscriptOutputKindFinal,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinalTrimmed,
|
|
CanonicalRelPath: TranscriptPathFinalTrimmed,
|
|
ProducerStage: "trim",
|
|
OutputKind: TranscriptOutputKindFinalTrimmed,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinalMarkdown,
|
|
CanonicalRelPath: TranscriptPathFinalMarkdown,
|
|
ProducerStage: "render",
|
|
OutputKind: TranscriptOutputKindFinalMarkdown,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinalTrimmedMarkdown,
|
|
CanonicalRelPath: TranscriptPathFinalTrimmedMarkdown,
|
|
ProducerStage: "render",
|
|
OutputKind: TranscriptOutputKindFinalTrimmedMarkdown,
|
|
},
|
|
}
|
|
|
|
got := RuntimeTranscriptArtifacts()
|
|
if !reflect.DeepEqual(got, want) {
|
|
t.Fatalf("RuntimeTranscriptArtifacts() = %#v, want %#v", got, want)
|
|
}
|
|
|
|
for _, spec := range want {
|
|
gotSpec, ok := LookupRuntimeTranscriptArtifact(spec.SourceID)
|
|
if !ok {
|
|
t.Fatalf("LookupRuntimeTranscriptArtifact(%q) ok = false, want true", spec.SourceID)
|
|
}
|
|
if gotSpec != spec {
|
|
t.Fatalf("LookupRuntimeTranscriptArtifact(%q) = %#v, want %#v", spec.SourceID, gotSpec, spec)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestPlannedTranscriptArtifacts(t *testing.T) {
|
|
want := []TranscriptArtifactSpec{
|
|
{
|
|
SourceID: ArtifactTranscriptBase,
|
|
CanonicalRelPath: TranscriptPathBase,
|
|
ProducerStage: "merge",
|
|
OutputKind: TranscriptOutputKindBase,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptPolished,
|
|
CanonicalRelPath: TranscriptPathPolished,
|
|
ProducerStage: "polish",
|
|
OutputKind: TranscriptOutputKindPolished,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinal,
|
|
CanonicalRelPath: TranscriptPathFinal,
|
|
ProducerStage: "normalize",
|
|
OutputKind: TranscriptOutputKindFinal,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinalTrimmed,
|
|
CanonicalRelPath: TranscriptPathFinalTrimmed,
|
|
ProducerStage: "trim",
|
|
OutputKind: TranscriptOutputKindFinalTrimmed,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinalMarkdown,
|
|
CanonicalRelPath: TranscriptPathFinalMarkdown,
|
|
ProducerStage: "render",
|
|
OutputKind: TranscriptOutputKindFinalMarkdown,
|
|
},
|
|
{
|
|
SourceID: ArtifactTranscriptFinalTrimmedMarkdown,
|
|
CanonicalRelPath: TranscriptPathFinalTrimmedMarkdown,
|
|
ProducerStage: "render",
|
|
OutputKind: TranscriptOutputKindFinalTrimmedMarkdown,
|
|
},
|
|
}
|
|
|
|
got := PlannedTranscriptArtifacts()
|
|
if !reflect.DeepEqual(got, want) {
|
|
t.Fatalf("PlannedTranscriptArtifacts() = %#v, want %#v", got, want)
|
|
}
|
|
|
|
for _, spec := range want {
|
|
gotSpec, ok := LookupPlannedTranscriptArtifact(spec.SourceID)
|
|
if !ok {
|
|
t.Fatalf("LookupPlannedTranscriptArtifact(%q) ok = false, want true", spec.SourceID)
|
|
}
|
|
if gotSpec != spec {
|
|
t.Fatalf("LookupPlannedTranscriptArtifact(%q) = %#v, want %#v", spec.SourceID, gotSpec, spec)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestTranscriptArtifactSlicesAreCopies(t *testing.T) {
|
|
runtime := RuntimeTranscriptArtifacts()
|
|
runtime[0].SourceID = "changed"
|
|
if got := RuntimeTranscriptArtifacts()[0].SourceID; got != ArtifactTranscriptBase {
|
|
t.Fatalf("RuntimeTranscriptArtifacts()[0].SourceID = %q, want %q", got, ArtifactTranscriptBase)
|
|
}
|
|
|
|
planned := PlannedTranscriptArtifacts()
|
|
planned[0].SourceID = "changed"
|
|
if got := PlannedTranscriptArtifacts()[0].SourceID; got != ArtifactTranscriptBase {
|
|
t.Fatalf("PlannedTranscriptArtifacts()[0].SourceID = %q, want %q", got, ArtifactTranscriptBase)
|
|
}
|
|
}
|
|
|
|
func TestRuntimeArtifactRegistryUsesTranscriptSpecs(t *testing.T) {
|
|
for _, transcript := range RuntimeTranscriptArtifacts() {
|
|
spec, ok := artifactRegistry[transcript.SourceID]
|
|
if !ok {
|
|
t.Fatalf("artifactRegistry missing %q", transcript.SourceID)
|
|
}
|
|
wantContentKind := contentTranscriptJSON
|
|
if transcript.SourceID == ArtifactTranscriptFinalMarkdown || transcript.SourceID == ArtifactTranscriptFinalTrimmedMarkdown {
|
|
wantContentKind = contentText
|
|
}
|
|
if spec.CanonicalRelPath != transcript.CanonicalRelPath ||
|
|
spec.ProducerStage != transcript.ProducerStage ||
|
|
spec.OutputKind != transcript.OutputKind ||
|
|
spec.ContentKind != wantContentKind {
|
|
t.Fatalf("artifactRegistry[%q] = %#v, want transcript spec %#v", transcript.SourceID, spec, transcript)
|
|
}
|
|
}
|
|
}
|