summaryrefslogtreecommitdiff
path: root/data
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2019-01-28 23:45:58 -0500
committerDave Henderson <dhenderson@gmail.com>2019-01-28 23:45:58 -0500
commit8695b4f6d86bfa3c241f65bf362e36600da97495 (patch)
tree4698e58c26813b92a85b39f0e55711ec6fd56091 /data
parent607dd429663edfa5a9248c09801a12f07b63bd4f (diff)
Adding missing tests
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'data')
-rw-r--r--data/datasource_file.go4
-rw-r--r--data/datasource_file_test.go18
2 files changed, 20 insertions, 2 deletions
diff --git a/data/datasource_file.go b/data/datasource_file.go
index 02c9cc81..93367cc5 100644
--- a/data/datasource_file.go
+++ b/data/datasource_file.go
@@ -28,7 +28,7 @@ func readFile(source *Source, args ...string) ([]byte, error) {
}
if parsed.Path != "" {
- p = p + "/" + parsed.Path
+ p = filepath.Join(p, parsed.Path)
}
}
@@ -38,7 +38,7 @@ func readFile(source *Source, args ...string) ([]byte, error) {
return nil, errors.Wrapf(err, "Can't stat %s", p)
}
- if strings.HasSuffix(p, "/") {
+ if strings.HasSuffix(p, string(filepath.Separator)) {
source.mediaType = jsonArrayMimetype
if i.IsDir() {
return readFileDir(source, p)
diff --git a/data/datasource_file_test.go b/data/datasource_file_test.go
index 5bc77396..3a402b3b 100644
--- a/data/datasource_file_test.go
+++ b/data/datasource_file_test.go
@@ -47,4 +47,22 @@ func TestReadFile(t *testing.T) {
actual, err = readFile(source)
assert.NoError(t, err)
assert.Equal(t, []byte(`["bar.txt","baz.txt","foo.txt"]`), actual)
+
+ source = &Source{Alias: "dir", URL: mustParseURL("file:///tmp/partial/?type=application/json")}
+ source.fs = fs
+ actual, err = readFile(source)
+ assert.NoError(t, err)
+ assert.Equal(t, []byte(`["bar.txt","baz.txt","foo.txt"]`), actual)
+ mime, err := source.mimeType()
+ assert.NoError(t, err)
+ assert.Equal(t, "application/json", mime)
+
+ source = &Source{Alias: "dir", URL: mustParseURL("file:///tmp/partial/?type=application/json")}
+ source.fs = fs
+ actual, err = readFile(source, "foo.txt")
+ assert.NoError(t, err)
+ assert.Equal(t, []byte(content), actual)
+ mime, err = source.mimeType()
+ assert.NoError(t, err)
+ assert.Equal(t, "application/json", mime)
}