// Copyright 2023 schukai GmbH // SPDX-License-Identifier: AGPL-3.0 package jobqueue import ( "context" "os" "path" "testing" ) func TestShellRunnable_Run(t *testing.T) { // Erstellen einer temporären Shell-Datei# tmpDir := t.TempDir() tmpFile := "example.sh" tmpPath := path.Join(tmpDir, tmpFile) fp, err := os.Create(tmpPath) if err != nil { t.Fatal(err) } defer fp.Close() content := []byte("#!/bin/sh\necho 'Hello, world!'\n") if _, err := fp.Write(content); err != nil { t.Fatal(err) } // ShellRunnable mit dem Pfad der temporären Datei initialisieren shellRunnable := ShellRunnable{ScriptPath: fp.Name()} // Run-Methode aufrufen ctx := context.Background() result, err := shellRunnable.Run(ctx) // Überprüfungen if err != nil { t.Errorf("Run() failed with error: %v", err) } if result.Status != ResultStatusSuccess { t.Errorf("Expected status Success, got %v", result.Status) } if result.Data.Output != "Hello, world!" { t.Errorf("Expected output 'Hello, world!', got '%v'", result.Data.Output) } if result.Data.ExitCode != 0 { t.Errorf("Expected exit code 0, got %v", result.Data.ExitCode) } }