Stop persisting notification receipts
This commit is contained in:
@@ -20,12 +20,11 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
failPromptExecution = "prompt execution"
|
||||
failMetadata = "metadata"
|
||||
failGeneratedText = "generated text"
|
||||
failRenderContext = "render context"
|
||||
failRenderedReportPath = "rendered report path"
|
||||
failDistributorNotification = "distributor notification"
|
||||
failPromptExecution = "prompt execution"
|
||||
failMetadata = "metadata"
|
||||
failGeneratedText = "generated text"
|
||||
failRenderContext = "render context"
|
||||
failRenderedReportPath = "rendered report path"
|
||||
)
|
||||
|
||||
type failingPersistenceStore struct {
|
||||
@@ -67,13 +66,6 @@ func (s *failingPersistenceStore) PrepareRenderedReport(ctx context.Context, res
|
||||
return s.Store.PrepareRenderedReport(ctx, resolved)
|
||||
}
|
||||
|
||||
func (s *failingPersistenceStore) SaveDistributorNotification(ctx context.Context, resolved report.Resolved, artifact state.DistributorNotificationArtifact) (string, error) {
|
||||
if s.failOperation == failDistributorNotification {
|
||||
return "", errors.New("injected notification persistence failure")
|
||||
}
|
||||
return s.Store.SaveDistributorNotification(ctx, resolved, artifact)
|
||||
}
|
||||
|
||||
func (s *failingPersistenceStore) SaveMetadata(ctx context.Context, metadata state.Metadata) (string, error) {
|
||||
s.metadataCalls++
|
||||
if s.failOperation == failMetadata && s.metadataCalls == s.failMetadataCall {
|
||||
@@ -151,9 +143,8 @@ func TestGeneratePromptReportReturnsOnlyReachedArtifactPaths(t *testing.T) {
|
||||
{name: "execution then metadata", failOperation: failMetadata, failMetadataCall: 2, want: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true}},
|
||||
{name: "normalized output then metadata", failOperation: failMetadata, failMetadataCall: 3, want: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true}},
|
||||
{name: "render context then metadata", failOperation: failMetadata, failMetadataCall: 4, want: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true}},
|
||||
{name: "managed report then metadata", failOperation: failMetadata, failMetadataCall: 5, want: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true}},
|
||||
{name: "rendered report then metadata", failOperation: failMetadata, failMetadataCall: 5, want: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true}},
|
||||
{name: "output then metadata", failOperation: failMetadata, failMetadataCall: 5, output: true, want: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true, output: true}},
|
||||
{name: "notification then metadata", failOperation: failMetadata, failMetadataCall: 6, notify: true, want: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true, notification: true}},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
@@ -250,7 +241,7 @@ func TestCompletedExecutionArtifactTracksDownstreamLifecycle(t *testing.T) {
|
||||
want := state.PromptExecutionPaths{
|
||||
RawOutputPath: paths.GeneratedTextRaw, GeneratedTextPath: paths.GeneratedText,
|
||||
RenderContextPath: paths.RenderContext, RenderedReportPath: paths.RenderedReport,
|
||||
OutputPath: paths.output, NotificationPath: paths.Notification,
|
||||
OutputPath: paths.output,
|
||||
}
|
||||
assertPersistedExecutionPaths(t, req.Store, result.ExecutionPath, want)
|
||||
|
||||
@@ -314,12 +305,12 @@ func TestCompletedExecutionArtifactRetainsLastPersistedCheckpoint(t *testing.T)
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true},
|
||||
},
|
||||
{
|
||||
name: "managed report write", failOperation: failRenderedReportPath,
|
||||
name: "rendered report write", failOperation: failRenderedReportPath,
|
||||
wantExecution: reachedExecutionArtifacts{raw: true, normalized: true, renderContext: true},
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true},
|
||||
},
|
||||
{
|
||||
name: "managed report checkpoint", failOperation: failPromptExecution, failExecutionCall: 4,
|
||||
name: "rendered report checkpoint", failOperation: failPromptExecution, failExecutionCall: 4,
|
||||
wantExecution: reachedExecutionArtifacts{raw: true, normalized: true, renderContext: true},
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true},
|
||||
},
|
||||
@@ -339,25 +330,10 @@ func TestCompletedExecutionArtifactRetainsLastPersistedCheckpoint(t *testing.T)
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true, output: true},
|
||||
},
|
||||
{
|
||||
name: "notification artifact write", failOperation: failDistributorNotification, requestOutput: true, notify: true,
|
||||
name: "notification operation", requestOutput: true, notify: true, notificationFailure: true,
|
||||
wantExecution: reachedExecutionArtifacts{raw: true, normalized: true, renderContext: true, report: true, output: true},
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true, output: true},
|
||||
},
|
||||
{
|
||||
name: "notification checkpoint", failOperation: failPromptExecution, failExecutionCall: 6, requestOutput: true, notify: true,
|
||||
wantExecution: reachedExecutionArtifacts{raw: true, normalized: true, renderContext: true, report: true, output: true},
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true, output: true, notification: true},
|
||||
},
|
||||
{
|
||||
name: "notification metadata", failOperation: failMetadata, failMetadataCall: 6, requestOutput: true, notify: true,
|
||||
wantExecution: reachedExecutionArtifacts{raw: true, normalized: true, renderContext: true, report: true, output: true, notification: true},
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true, output: true, notification: true},
|
||||
},
|
||||
{
|
||||
name: "notification operation", requestOutput: true, notify: true, notificationFailure: true,
|
||||
wantExecution: reachedExecutionArtifacts{raw: true, normalized: true, renderContext: true, report: true, output: true, notification: true},
|
||||
wantResult: reachedPromptArtifacts{preparation: true, execution: true, metadata: true, raw: true, normalized: true, renderContext: true, report: true, output: true, notification: true},
|
||||
},
|
||||
}
|
||||
|
||||
for _, test := range tests {
|
||||
@@ -409,7 +385,6 @@ type reachedExecutionArtifacts struct {
|
||||
renderContext bool
|
||||
report bool
|
||||
output bool
|
||||
notification bool
|
||||
}
|
||||
|
||||
func executionPathsFor(paths promptArtifactPaths, reached reachedExecutionArtifacts) state.PromptExecutionPaths {
|
||||
@@ -429,9 +404,6 @@ func executionPathsFor(paths promptArtifactPaths, reached reachedExecutionArtifa
|
||||
if reached.output {
|
||||
result.OutputPath = paths.output
|
||||
}
|
||||
if reached.notification {
|
||||
result.NotificationPath = paths.Notification
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
@@ -466,7 +438,6 @@ type reachedPromptArtifacts struct {
|
||||
renderContext bool
|
||||
report bool
|
||||
output bool
|
||||
notification bool
|
||||
}
|
||||
|
||||
func promptArtifactRequest(t *testing.T, executor promptexec.Executor) (promptReportRequest, promptArtifactPaths) {
|
||||
@@ -534,7 +505,6 @@ func assertReachedPromptArtifacts(t *testing.T, result *ReportResult, paths prom
|
||||
{"render context", result.RenderContextPath, result.Metadata.RenderContextPath, true, paths.RenderContext, want.renderContext},
|
||||
{"report", result.ReportPath, result.Metadata.RenderedReportPath, true, paths.RenderedReport, want.report},
|
||||
{"output", result.OutputPath, "", false, paths.output, want.output},
|
||||
{"notification", result.NotificationPath, result.Metadata.NotificationPath, true, paths.Notification, want.notification},
|
||||
}
|
||||
for _, check := range checks {
|
||||
if check.want && check.got != check.path {
|
||||
|
||||
Reference in New Issue
Block a user