test: add download, store, and scraper tests
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
package store
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
"testing"
|
||||
"time"
|
||||
)
|
||||
|
||||
func TestOpenPutGet(t *testing.T) {
|
||||
dir := t.TempDir()
|
||||
|
||||
s, err := Open(dir)
|
||||
if err != nil {
|
||||
t.Fatalf("Open: %v", err)
|
||||
}
|
||||
defer s.Close()
|
||||
|
||||
if _, err := os.Stat(filepath.Join(dir, ".tracks.db")); err != nil {
|
||||
t.Errorf("expected .tracks.db to exist: %v", err)
|
||||
}
|
||||
|
||||
info := &DownloadInfo{
|
||||
TrackID: "123",
|
||||
Quality: "MP3_320",
|
||||
Path: "/music/track.mp3",
|
||||
Hash: "abc",
|
||||
Downloaded: time.Now().Truncate(time.Second),
|
||||
}
|
||||
if err := s.PutDownloadInfo(info); err != nil {
|
||||
t.Fatalf("PutDownloadInfo: %v", err)
|
||||
}
|
||||
|
||||
got, err := s.DownloadInfo("123")
|
||||
if err != nil {
|
||||
t.Fatalf("DownloadInfo: %v", err)
|
||||
}
|
||||
if got.TrackID != info.TrackID || got.Quality != info.Quality || got.Path != info.Path || got.Hash != info.Hash {
|
||||
t.Errorf("DownloadInfo() = %+v, want %+v", got, info)
|
||||
}
|
||||
}
|
||||
|
||||
func TestDownloadInfoNotFound(t *testing.T) {
|
||||
s, err := Open(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatalf("Open: %v", err)
|
||||
}
|
||||
defer s.Close()
|
||||
|
||||
if _, err := s.DownloadInfo("missing"); err == nil {
|
||||
t.Error("expected error for unknown track ID")
|
||||
}
|
||||
}
|
||||
|
||||
func TestClose(t *testing.T) {
|
||||
s, err := Open(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatalf("Open: %v", err)
|
||||
}
|
||||
if err := s.Close(); err != nil {
|
||||
t.Errorf("Close: %v", err)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user