Files
Jan Rodák c70c0ac13e refactor: Modularize binding build functions
- Split the monolithic Build() function into focused helper functions.
- Add a TempFileManager for proper temporary file lifecycle management.

This refactoring is in preparation for implementing a local build API.

Signed-off-by: Jan Rodák <hony.com@seznam.cz>
2025-09-09 14:49:45 +02:00

53 lines
1.1 KiB
Go

package remote_build_helpers
import (
"os"
"path/filepath"
"strings"
"testing"
"github.com/stretchr/testify/assert"
)
func TestTempFileManager(t *testing.T) {
manager := NewTempFileManager()
t.Run("CreateTempFileFromReader", func(t *testing.T) {
content := "test content"
r := strings.NewReader(content)
filename, err := manager.CreateTempFileFromReader("", "podman-build-stdin-*", r)
assert.NoError(t, err)
assert.FileExists(t, filename)
data, err := os.ReadFile(filename)
assert.NoError(t, err)
assert.Equal(t, content, string(data))
manager.Cleanup()
assert.NoFileExists(t, filename)
})
t.Run("CreateTempSecret", func(t *testing.T) {
tempdir := t.TempDir()
secretPath := filepath.Join(tempdir, "secret.txt")
content := "test secret"
err := os.WriteFile(secretPath, []byte(content), 0600)
assert.NoError(t, err)
filename, err := manager.CreateTempSecret(secretPath, tempdir)
assert.NoError(t, err)
assert.FileExists(t, filename)
data, err := os.ReadFile(filename)
assert.NoError(t, err)
assert.Equal(t, content, string(data))
manager.Cleanup()
assert.NoFileExists(t, filename)
})
}