...

Source file src/gotest.tools/v3/fs/ops_test.go

Documentation: gotest.tools/v3/fs

     1  package fs_test
     2  
     3  import (
     4  	"os"
     5  	"path/filepath"
     6  	"strings"
     7  	"testing"
     8  	"time"
     9  
    10  	"gotest.tools/v3/assert"
    11  	"gotest.tools/v3/fs"
    12  )
    13  
    14  func TestFromDir(t *testing.T) {
    15  	dir := fs.NewDir(t, "test-from-dir", fs.FromDir("testdata/copy-test"))
    16  	defer dir.Remove()
    17  
    18  	expected := fs.Expected(t,
    19  		fs.WithFile("1", "1\n"),
    20  		fs.WithDir("a",
    21  			fs.WithFile("1", "1\n"),
    22  			fs.WithFile("2", "2\n"),
    23  			fs.WithDir("b",
    24  				fs.WithFile("1", "1\n"))))
    25  
    26  	assert.Assert(t, fs.Equal(dir.Path(), expected))
    27  }
    28  
    29  func TestFromDirSymlink(t *testing.T) {
    30  	dir := fs.NewDir(t, "test-from-dir", fs.FromDir("testdata/copy-test-with-symlink"))
    31  	defer dir.Remove()
    32  
    33  	link2 := filepath.FromSlash("../2")
    34  	link3 := filepath.FromSlash("/some/inexistent/link")
    35  
    36  	expected := fs.Expected(t,
    37  		fs.WithFile("1", "1\n"),
    38  		fs.WithDir("a",
    39  			fs.WithFile("1", "1\n"),
    40  			fs.WithFile("2", "2\n"),
    41  			fs.WithDir("b",
    42  				fs.WithFile("1", "1\n"),
    43  				fs.WithSymlink("2", link2),
    44  				fs.WithSymlink("3", link3),
    45  				fs.WithSymlink("4", "5"),
    46  			)))
    47  
    48  	assert.Assert(t, fs.Equal(dir.Path(), expected))
    49  }
    50  
    51  func TestWithTimestamps(t *testing.T) {
    52  	stamp := time.Date(2011, 11, 11, 5, 55, 55, 0, time.UTC)
    53  	tmpFile := fs.NewFile(t, t.Name(), fs.WithTimestamps(stamp, stamp))
    54  	defer tmpFile.Remove()
    55  
    56  	stat, err := os.Stat(tmpFile.Path())
    57  	assert.NilError(t, err)
    58  	assert.DeepEqual(t, stat.ModTime(), stamp)
    59  }
    60  
    61  func TestApply(t *testing.T) {
    62  	t.Run("with file", func(t *testing.T) {
    63  		tmpFile := fs.NewFile(t, "test-update-file", fs.WithContent("contenta"))
    64  		defer tmpFile.Remove()
    65  		fs.Apply(t, tmpFile, fs.WithContent("contentb"))
    66  		content, err := os.ReadFile(tmpFile.Path())
    67  		assert.NilError(t, err)
    68  		assert.Equal(t, string(content), "contentb")
    69  	})
    70  
    71  	t.Run("with dir", func(t *testing.T) {
    72  		tmpDir := fs.NewDir(t, "test-update-dir")
    73  		defer tmpDir.Remove()
    74  		fs.Apply(t, tmpDir, fs.WithFile("file1", "contenta"))
    75  		fs.Apply(t, tmpDir, fs.WithFile("file2", "contentb"))
    76  		expected := fs.Expected(t,
    77  			fs.WithFile("file1", "contenta"),
    78  			fs.WithFile("file2", "contentb"))
    79  		assert.Assert(t, fs.Equal(tmpDir.Path(), expected))
    80  	})
    81  }
    82  
    83  func TestWithReaderContent(t *testing.T) {
    84  	content := "this is a test"
    85  	dir := fs.NewDir(t, t.Name(),
    86  		fs.WithFile("1", "",
    87  			fs.WithReaderContent(strings.NewReader(content))),
    88  	)
    89  	defer dir.Remove()
    90  	expected := fs.Expected(t, fs.WithFile("1", content))
    91  	assert.Assert(t, fs.Equal(dir.Path(), expected))
    92  }
    93  

View as plain text