Allow deleting draft server records

This commit is contained in:
npc0-hue
2026-08-04 15:55:39 +08:00
parent cf9af14eaf
commit ee02974ff8
3 changed files with 31 additions and 1 deletions
+16
View File
@@ -590,6 +590,15 @@ func TestCoreServiceDeletesServerInstancesWithPasswordConfirmation(t *testing.T)
if err != nil {
t.Fatalf("create installing target: %v", err)
}
draftTarget, err := svc.CreateServerInstanceForSession(ownerSession, domain.ServerInstance{
ID: "server-delete-draft",
PluginID: plugin.ID,
Name: "Delete Draft Target",
State: domain.ServerInstanceStateDraft,
})
if err != nil {
t.Fatalf("create draft target: %v", err)
}
if _, err := svc.DeleteServerInstanceForSession(otherSession, ownerInstance.ID, domain.ServerDeletionRequest{Password: "secret-password"}); !errors.Is(err, ErrForbidden) {
t.Fatalf("expected non-owner delete to be forbidden, got %v", err)
@@ -620,6 +629,13 @@ func TestCoreServiceDeletesServerInstancesWithPasswordConfirmation(t *testing.T)
if deletedAdmin.State != domain.ServerInstanceStateDeleted {
t.Fatalf("expected deleted admin state, got %+v", deletedAdmin)
}
deletedDraft, err := svc.DeleteServerInstanceForSession(ownerSession, draftTarget.ID, domain.ServerDeletionRequest{Password: "secret-password"})
if err != nil {
t.Fatalf("delete draft target without run endpoint: %v", err)
}
if deletedDraft.State != domain.ServerInstanceStateDeleted || deletedDraft.RunEndpointID != "" {
t.Fatalf("expected deleted draft target without run endpoint, got %+v", deletedDraft)
}
if _, err := svc.DeleteServerInstanceForSession(ownerSession, runningTarget.ID, domain.ServerDeletionRequest{Password: "secret-password"}); err == nil {
t.Fatalf("expected running instance delete to fail")
} else {