package publish import ( "testing" "gitea.maximumdirect.net/eric/distributor/internal/config" "gitea.maximumdirect.net/eric/distributor/internal/state" "gitea.maximumdirect.net/eric/distributor/internal/storage/fake" "gitea.maximumdirect.net/eric/distributor/internal/testutil" ) func TestCompareDestinationFixedPathPreservesDifferentSourceConflict(t *testing.T) { sourceBackend := fake.New() sourceBundle := testutil.WriteFakeSourceBundle(t, sourceBackend, "bundle", testutil.BundleOptions{}) destinationState := testutil.DestinationState(sourceBundle.Manifest, testutil.DestinationStateOptions{}) destinationState.Source.Manifest.ID = "latest.previous" comparison := compareDestination(Request{ PipelineID: "reports", DestinationID: "archive", SourceBundle: sourceBundle, DestinationBundlePath: "", PathMapping: config.PathMappingFixed, State: config.StatePolicy{Mode: config.StateModeSingleOwner}, }, state.DestinationStatus{State: &destinationState, HasContents: true}) if comparison.Outcome != state.OutcomeDifferentSourceConflict { t.Fatalf("comparison outcome = %s, want %s", comparison.Outcome, state.OutcomeDifferentSourceConflict) } if comparison.Detail.Kind != state.ComparisonDetailDifferentSourceID { t.Fatalf("detail kind = %q, want %q", comparison.Detail.Kind, state.ComparisonDetailDifferentSourceID) } if comparison.Detail.CurrentSourceID != sourceBundle.Manifest.ID || comparison.Detail.DestinationSourceID != "latest.previous" { t.Fatalf("detail = %#v, want source ids", comparison.Detail) } }