Fix error if history file doesn't exist

This commit is contained in:
Ingo Oppermann
2023-07-19 13:17:55 +02:00
parent 165db9dc96
commit c1b47036d6
3 changed files with 37 additions and 6 deletions

View File

@@ -203,7 +203,7 @@ func NewRootedDiskFilesystem(config RootedDiskConfig) (Filesystem, error) {
info, err := os.Stat(fs.root)
if err != nil {
return nil, err
return nil, os.ErrNotExist
}
if !info.IsDir() {
@@ -285,7 +285,7 @@ func (fs *diskFilesystem) Symlink(oldname, newname string) error {
info, err := os.Lstat(oldname)
if err != nil {
return err
return os.ErrNotExist
}
if info.Mode()&os.ModeSymlink != 0 {
@@ -494,7 +494,7 @@ func (fs *diskFilesystem) Stat(path string) (FileInfo, error) {
info, err := os.Lstat(path)
if err != nil {
return nil, err
return nil, os.ErrNotExist
}
dif.mode = info.Mode()
@@ -502,7 +502,7 @@ func (fs *diskFilesystem) Stat(path string) (FileInfo, error) {
if info.Mode()&os.ModeSymlink != 0 {
info, err = os.Stat(path)
if err != nil {
return nil, err
return nil, os.ErrNotExist
}
}

View File

@@ -2,6 +2,7 @@ package session
import (
"bytes"
"errors"
"io"
"os"
@@ -39,8 +40,12 @@ func NewHistorySource(fs fs.Filesystem, path string) (SnapshotSource, error) {
path: path,
}
if _, err := s.fs.Stat(s.path); err == os.ErrNotExist {
return nil, nil
if _, err := s.fs.Stat(s.path); err != nil {
if errors.Is(err, os.ErrNotExist) {
return nil, nil
}
return nil, err
}
data, err := s.fs.ReadFile(s.path)

26
session/snapshot_test.go Normal file
View File

@@ -0,0 +1,26 @@
package session
import (
"testing"
"github.com/datarhei/core/v16/io/fs"
"github.com/stretchr/testify/require"
)
func TestHistorySource(t *testing.T) {
memfs, err := fs.NewMemFilesystem(fs.MemConfig{})
require.NoError(t, err)
s, err := NewHistorySource(memfs, "/foobar.json")
require.NoError(t, err)
require.Nil(t, s)
}
func TestHistorySourceDisk(t *testing.T) {
diskfs, err := fs.NewDiskFilesystem(fs.DiskConfig{})
require.NoError(t, err)
s, err := NewHistorySource(diskfs, "./foobar.json")
require.NoError(t, err)
require.Nil(t, s)
}