Issue 11030: fix HasFile to avoid false positives for no filename (#11060)

This commit is contained in:
Jesse Hallam
2019-06-05 17:51:59 -04:00
committed by Harrison Healey
parent bf233dec77
commit 16c11d7bf9
3 changed files with 30 additions and 1 deletions

View File

@@ -611,6 +611,19 @@ func TestDatabaseHasFile(t *testing.T) {
require.NoError(t, err)
require.True(t, has)
})
t.Run("has non-existent empty string", func(t *testing.T) {
_, tearDown := setupConfigDatabase(t, minimalConfig, nil)
defer tearDown()
ds, err := config.NewDatabaseStore(fmt.Sprintf("%s://%s", *mainHelper.Settings.DriverName, *mainHelper.Settings.DataSource))
require.NoError(t, err)
defer ds.Close()
has, err := ds.HasFile("")
require.NoError(t, err)
require.False(t, has)
})
}
func TestDatabaseRemoveFile(t *testing.T) {

View File

@@ -184,6 +184,10 @@ func (fs *FileStore) SetFile(name string, data []byte) error {
// HasFile returns true if the given file was previously persisted.
func (fs *FileStore) HasFile(name string) (bool, error) {
if name == "" {
return false, nil
}
resolvedPath := filepath.Join(filepath.Dir(fs.path), name)
_, err := os.Stat(resolvedPath)

View File

@@ -688,7 +688,6 @@ func TestFileSetFile(t *testing.T) {
}
func TestFileHasFile(t *testing.T) {
t.Run("has non-existent", func(t *testing.T) {
path, tearDown := setupConfigFile(t, minimalConfig)
defer tearDown()
@@ -740,6 +739,19 @@ func TestFileHasFile(t *testing.T) {
require.NoError(t, err)
require.True(t, has)
})
t.Run("has empty string", func(t *testing.T) {
path, tearDown := setupConfigFile(t, minimalConfig)
defer tearDown()
fs, err := config.NewFileStore(path, true)
require.NoError(t, err)
defer fs.Close()
has, err := fs.HasFile("")
require.NoError(t, err)
require.False(t, has)
})
}
func TestFileRemoveFile(t *testing.T) {