github.com/kjdelisle/consul@v1.4.5/lib/file/atomic_test.go (about)

     1  package file
     2  
     3  import (
     4  	"io/ioutil"
     5  	"os"
     6  	"path/filepath"
     7  	"testing"
     8  
     9  	"github.com/stretchr/testify/require"
    10  )
    11  
    12  // This doesn't really test the "atomic" part of this function. It really
    13  // tests that it just writes the file properly. I would love to test this
    14  // better but I'm not sure how. -mitchellh
    15  func TestWriteAtomic(t *testing.T) {
    16  	require := require.New(t)
    17  	td, err := ioutil.TempDir("", "lib-file")
    18  	require.NoError(err)
    19  	defer os.RemoveAll(td)
    20  
    21  	// Create a subdir that doesn't exist to test that it is created
    22  	path := filepath.Join(td, "subdir", "file")
    23  
    24  	// Write
    25  	expected := []byte("hello")
    26  	require.NoError(WriteAtomic(path, expected))
    27  
    28  	// Read and verify
    29  	actual, err := ioutil.ReadFile(path)
    30  	require.NoError(err)
    31  	require.Equal(expected, actual)
    32  }