Honor deployment root for file operations
This commit is contained in:
@@ -646,6 +646,36 @@ func TestScopedFileExecutorListsDirectories(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestDeploymentFileExecutorUsesServerRoot(t *testing.T) {
|
||||
workspaceRoot := t.TempDir()
|
||||
serverRoot := t.TempDir()
|
||||
if err := os.WriteFile(filepath.Join(workspaceRoot, ".platform"), []byte("workspace"), 0o600); err != nil {
|
||||
t.Fatalf("write workspace marker: %v", err)
|
||||
}
|
||||
if err := os.WriteFile(filepath.Join(serverRoot, "SCUMServer.exe"), []byte("server"), 0o600); err != nil {
|
||||
t.Fatalf("write server marker: %v", err)
|
||||
}
|
||||
executor, err := NewFileExecutor(workspaceRoot)
|
||||
if err != nil {
|
||||
t.Fatalf("new file executor: %v", err)
|
||||
}
|
||||
assignment := executionAssignment(protocol.RunCapabilityFilesList)
|
||||
assignment.TargetKey = "server-root"
|
||||
assignment.ExecutionInput.Inputs = map[string]string{"path": "", "recursive": "false", "query": ""}
|
||||
assignment.ExecutionInput.Deployment = &protocol.ServerDeploymentExecution{SchemaVersion: "1", Mode: "guided-install", ServerRoot: serverRoot, Revision: 1}
|
||||
result := executor.Execute(context.Background(), assignment)
|
||||
if result.State != lifecycleResultStateSucceeded || result.ExecutionResult.Kind != "file.list" {
|
||||
t.Fatalf("expected deployment root listing, got %+v", result)
|
||||
}
|
||||
var envelope fileListEnvelope
|
||||
if err := json.Unmarshal([]byte(result.ExecutionResult.Content), &envelope); err != nil {
|
||||
t.Fatalf("decode deployment listing: %v", err)
|
||||
}
|
||||
if len(envelope.Entries) != 1 || envelope.Entries[0].Name != "SCUMServer.exe" {
|
||||
t.Fatalf("expected only deployment root entry, got %+v", envelope.Entries)
|
||||
}
|
||||
}
|
||||
|
||||
func TestScopedFileExecutorCancellationLeavesTargetUnchanged(t *testing.T) {
|
||||
root := t.TempDir()
|
||||
executor, err := NewFileExecutor(root)
|
||||
|
||||
Reference in New Issue
Block a user