Fix server file refresh pending state
This commit is contained in:
@@ -970,6 +970,35 @@ func TestPluginFileWorkspaceDoesNotConstrainServerFileDispatch(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestServerFileListReportsFailedRuntimeRefresh(t *testing.T) {
|
||||
svc := newTestCoreService()
|
||||
plugin, endpoint := createPluginAndRunEndpoint(t, svc)
|
||||
ownerSession := createServiceUserAndLogin(t, svc, domain.User{ID: "user-file-list-failure", DisplayName: "File List Failure", Email: "file-list-failure@example.test", Roles: []string{"server-owner"}, PasswordHash: "secret-password"})
|
||||
instance, err := svc.CreateServerInstanceForSession(ownerSession, domain.ServerInstance{ID: "server-file-list-failure", PluginID: plugin.ID, RunEndpointID: endpoint.ID, Name: "File List Failure Server", State: domain.ServerInstanceStateRunning})
|
||||
if err != nil {
|
||||
t.Fatalf("create server: %v", err)
|
||||
}
|
||||
createCompleteRuntimeBinding(t, svc, instance, "local")
|
||||
|
||||
refresh, err := svc.RefreshServerFileListForSession(ownerSession, domain.ServerFileListRequest{ServerInstanceID: instance.ID, DirectoryKey: "server-root", IdempotencyKey: "idem-file-list-failure"})
|
||||
if err != nil || refresh.State != "pending" || refresh.Job.ID == "" {
|
||||
t.Fatalf("refresh file list: result=%+v err=%v", refresh, err)
|
||||
}
|
||||
failedJob := refresh.Job
|
||||
failedJob.State = domain.JobStateFailed
|
||||
failedJob.Progress = domain.JobProgress{Percent: 100, Message: "executor does not support files.list"}
|
||||
failedJob.TerminalAt = fixedTime.Add(2 * time.Minute)
|
||||
failedJob.UpdatedAt = failedJob.TerminalAt
|
||||
if err := svc.store.Jobs().Update(failedJob); err != nil {
|
||||
t.Fatalf("update failed file list job: %v", err)
|
||||
}
|
||||
|
||||
list, err := svc.ListServerFilesForSession(ownerSession, domain.ServerFileListRequest{ServerInstanceID: instance.ID, DirectoryKey: "server-root"})
|
||||
if err != nil || list.State != "failed" || list.Job.ID != failedJob.ID || !strings.Contains(list.Reason, "executor does not support files.list") {
|
||||
t.Fatalf("expected failed file list state, list=%+v err=%v", list, err)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeclaredFileReadSnapshotProjectionStatesAndRedaction(t *testing.T) {
|
||||
svc := newTestCoreService()
|
||||
plugin, endpoint := createPluginAndRunEndpoint(t, svc)
|
||||
|
||||
Reference in New Issue
Block a user