Something went wrong on our end
Select Git revision
-
Volker Schukai authoredVolker Schukai authored
runnable-shell_test.go 1.13 KiB
// 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)
}
}