github.com/gkstretton/dark/services/goo@v0.0.0-20231114224855-2d1a2074d446/filesystem/helpers_test.go (about)

     1  package filesystem
     2  
     3  import (
     4  	"os"
     5  	"strconv"
     6  	"strings"
     7  	"testing"
     8  	"time"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  )
    12  
    13  func TestSetPerms(t *testing.T) {
    14  	SetPerms("/mnt/md0/light-stores/session_content/34/dslr/raw/0002.jpg.yml")
    15  }
    16  
    17  func TestWriteCreationTime(t *testing.T) {
    18  	os.Chdir("../")
    19  	start := time.Now()
    20  
    21  	filePath := "/tmp/test"
    22  	err := os.WriteFile(filePath, []byte("testfile"), 0666)
    23  	assert.NoError(t, err)
    24  
    25  	err = WriteCreationTimeUsingMetadata(filePath)
    26  	assert.NoError(t, err)
    27  
    28  	b, err := os.ReadFile(filePath + ".creationtime")
    29  	assert.NoError(t, err)
    30  	s := strings.Split(string(b), ".")
    31  	assert.Len(t, s, 2)
    32  	t.Log(s)
    33  
    34  	seconds, err := strconv.Atoi(s[0])
    35  	assert.NoError(t, err)
    36  	nanos, err := strconv.Atoi(s[1])
    37  	assert.NoError(t, err)
    38  
    39  	t.Logf("seconds: %d\n", seconds)
    40  	t.Logf("nanos: %d\n", nanos)
    41  
    42  	createdTime := time.Unix(int64(seconds), int64(nanos))
    43  	t.Logf("start: %s\n", start.String())
    44  	t.Logf("created: %s\n", createdTime.String())
    45  
    46  	msDiff := createdTime.UnixMilli() - start.UnixMilli()
    47  	if msDiff < 0 {
    48  		msDiff *= -1
    49  	}
    50  	assert.True(t, msDiff < 500)
    51  
    52  	err = os.Remove(filePath)
    53  	assert.NoError(t, err)
    54  	err = os.Remove(filePath + ".creationtime")
    55  	assert.NoError(t, err)
    56  }
    57  
    58  func TestWriteCreationTimeUsingNow(t *testing.T) {
    59  	WriteCreationTimeUsingNow("/home/greg/now")
    60  }