33 lines
1.5 KiB
Go
33 lines
1.5 KiB
Go
package briefing
|
|
|
|
import (
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
func TestPreparedIdentityBuildsEquivalentMetadata(t *testing.T) {
|
|
moduleContext := testModuleContext()
|
|
context := BuildContext{
|
|
Resolved: moduleContext.Resolved,
|
|
Bundle: moduleContext.Collected.Bundle(),
|
|
Units: moduleContext.Units,
|
|
Timezone: moduleContext.Timezone,
|
|
Location: moduleContext.Location,
|
|
}
|
|
identity := BuildPreparedIdentity(context)
|
|
metadata := BuildMetadata(identity, context.Bundle)
|
|
|
|
if metadata.RunID != identity.RunID || metadata.ReportID != identity.ReportID || metadata.Variant != identity.Variant || metadata.PromptID != identity.PromptID || !metadata.GeneratedAt.Equal(identity.GeneratedAt) || metadata.Units != identity.Units || metadata.Timezone != identity.Timezone || metadata.ValidPeriod != identity.ValidPeriod {
|
|
t.Fatalf("metadata identity = %#v, want %#v", metadata, identity)
|
|
}
|
|
if !reflect.DeepEqual(metadata.Location, identity.Location) || !reflect.DeepEqual(metadata.SourceWarnings, identity.SourceWarnings) {
|
|
t.Fatalf("metadata location/warnings = %#v/%#v, want %#v/%#v", metadata.Location, metadata.SourceWarnings, identity.Location, identity.SourceWarnings)
|
|
}
|
|
|
|
metadata.Location.Name = "consumer mutation"
|
|
metadata.SourceWarnings = append(metadata.SourceWarnings, moduleContext.Collected.SourceWarnings[0])
|
|
if identity.Location.Name == "consumer mutation" || len(identity.SourceWarnings) != len(moduleContext.Collected.SourceWarnings) {
|
|
t.Fatalf("identity changed through metadata mutation: %#v", identity)
|
|
}
|
|
}
|