diff options
| author | Paul Buetow <paul@buetow.org> | 2026-07-04 22:14:16 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2026-07-04 22:14:16 +0300 |
| commit | 2381c8712ebafa8060f0d2feacadd85bef280eb0 (patch) | |
| tree | 5132d2b105de91299d052b6a0b69e9b8c9ec7a38 /internal/file/file_test.go | |
| parent | cb9a2b35216a1df783d9a8e9b901bcd32c958dbb (diff) | |
- Delete internal/file/content.go (duplicate implementation with different semantics).
- Refactor internal/file/file.go to use a File struct with options (WithContent, WithSource, WithMode, etc.).
- Update Have signature to accept variadic options instead of (path, param).
- Update tests to use new API.
- Update TODO.md to remove resolved blocker and reflect remaining features.
Diffstat (limited to 'internal/file/file_test.go')
| -rw-r--r-- | internal/file/file_test.go | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/internal/file/file_test.go b/internal/file/file_test.go index e41d7dc..a9397ba 100644 --- a/internal/file/file_test.go +++ b/internal/file/file_test.go @@ -31,7 +31,7 @@ func TestWriteTmpFile(t *testing.T) { tmpPath := filepath.Join(dir, "test.tmp") content := []byte("temp content") - if err := writeTmpFile(tmpPath, content); err != nil { + if err := writeTmpFile(tmpPath, content, 0o644); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -101,7 +101,7 @@ func TestHaveStringCreateNewFile(t *testing.T) { dir := t.TempDir() path := filepath.Join(dir, "new.txt") - if err := Have(path, "hello world"); err != nil { + if err := Have(path, WithContent("hello world")); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -114,12 +114,31 @@ func TestHaveStringCreateNewFile(t *testing.T) { } } +func TestHaveMode(t *testing.T) { + dir := t.TempDir() + path := filepath.Join(dir, "mode.txt") + mode := os.FileMode(0o600) + + if err := Have(path, WithContent("mode test"), WithMode(mode)); err != nil { + t.Fatalf("unexpected error: %v", err) + } + + info, err := os.Stat(path) + if err != nil { + t.Fatal(err) + } + // Mask to check only permission bits + if info.Mode().Perm() != mode { + t.Errorf("expected mode %v, got %v", mode, info.Mode().Perm()) + } +} + func TestHaveSourceFile(t *testing.T) { dir := t.TempDir() sourcePath := filepath.Join("..", "..", "assets", "testfiles", "test.txt") targetPath := filepath.Join(dir, "target.txt") - if err := Have(targetPath, "source://"+sourcePath); err != nil { + if err := Have(targetPath, WithSource(sourcePath)); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -138,7 +157,7 @@ func TestHaveTemplateFile(t *testing.T) { sourcePath := filepath.Join("..", "..", "assets", "testfiles", "test.tmpl") targetPath := filepath.Join(dir, "target.conf") - if err := Have(targetPath, "source://"+sourcePath); err != nil { + if err := Have(targetPath, WithSource(sourcePath)); err != nil { t.Fatalf("unexpected error: %v", err) } @@ -147,7 +166,7 @@ func TestHaveTemplateFile(t *testing.T) { t.Fatalf("reading file: %v", err) } - expectedParam := "source://" + sourcePath + expectedParam := sourcePath if !strings.Contains(string(got), expectedParam) { t.Errorf("expected content to contain Param %q, got %q", expectedParam, string(got)) } |
