From 112d05b5927018d56f49b0b003d23ed45c208117 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Johannes=20B=C3=BClow?= Date: Fri, 13 Jun 2025 16:19:58 +0200 Subject: [PATCH] Added test for filetype determination --- Makefile | 2 +- server/internal/store/filetype_test.go | 62 ++++++++++++++++++++++++++ 2 files changed, 63 insertions(+), 1 deletion(-) create mode 100644 server/internal/store/filetype_test.go diff --git a/Makefile b/Makefile index 67963e4..239dfc7 100644 --- a/Makefile +++ b/Makefile @@ -17,7 +17,7 @@ run: ## Run the application test: ## Run test echo "Testing..." - go test ./tests/... -v + go test ./server/internal/store -v clean: ## Delete build artifacts echo "Cleaning..." diff --git a/server/internal/store/filetype_test.go b/server/internal/store/filetype_test.go new file mode 100644 index 0000000..6f69f6d --- /dev/null +++ b/server/internal/store/filetype_test.go @@ -0,0 +1,62 @@ +package store_test + +import ( + "path/filepath" + "testing" + + "git.jmbit.de/jmb/scanfile/server/internal/store" + "github.com/spf13/viper" +) + +type testFile struct { + Name string + MimeType string +} + +var testFiles = []testFile{ + { + Name: "zip.zip", + MimeType: "application/zip", + }, + { + Name: "zip.7z", + MimeType: "application/x-7z-compressed", + }, + { + Name: "test.txt", + MimeType: "text/plain; charset=utf-8", + }, + { + Name: "macro-example.xlsm", + MimeType: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", + }, +} + +func setconf() error { + absPath, err := filepath.Abs("../../../tests/files") + if err != nil { + return err + } + viper.Set("store.path", absPath) + return nil +} + + +func TestFileType(t *testing.T) { + err := setconf() + if err != nil { + t.Fatal(err) + } + + for i, file := range testFiles { + mimeType, err := store.GetFileType(file.Name) + if err != nil { + t.Error(err) + } + t.Logf("[%d/%d] File %s Expected: %s, Result: %s", i+1, len(testFiles), file.Name, file.MimeType, mimeType) + if mimeType != file.MimeType { + t.Fail() + } + } + +}