use go:embed to simplify testdata loading

This commit is contained in:
Philipp Wolfer 2023-12-10 14:11:54 +01:00
parent c4193f42a1
commit dd501df5c5
No known key found for this signature in database
GPG key ID: 8FDF744D4919943B
4 changed files with 35 additions and 25 deletions

View file

@ -16,8 +16,8 @@ Scotty. If not, see <https://www.gnu.org/licenses/>.
package deezer_test
import (
_ "embed"
"encoding/json"
"os"
"testing"
"time"
@ -28,6 +28,13 @@ import (
"go.uploadedlobster.com/scotty/internal/config"
)
var (
//go:embed testdata/listen.json
testListen []byte
//go:embed testdata/track.json
testTrack []byte
)
func TestFromConfig(t *testing.T) {
c := viper.New()
c.Set("client-id", "someclientid")
@ -38,10 +45,8 @@ func TestFromConfig(t *testing.T) {
}
func TestListenAsListen(t *testing.T) {
data, err := os.ReadFile("testdata/listen.json")
require.NoError(t, err)
track := deezer.Listen{}
err = json.Unmarshal(data, &track)
err := json.Unmarshal(testListen, &track)
require.NoError(t, err)
listen := track.AsListen()
assert.Equal(t, time.Unix(1700753817, 0), listen.ListenedAt)
@ -55,10 +60,8 @@ func TestListenAsListen(t *testing.T) {
}
func TestLovedTrackAsLove(t *testing.T) {
data, err := os.ReadFile("testdata/track.json")
require.NoError(t, err)
track := deezer.LovedTrack{}
err = json.Unmarshal(data, &track)
err := json.Unmarshal(testTrack, &track)
require.NoError(t, err)
love := track.AsLove()
assert.Equal(t, time.Unix(1700743848, 0), love.Created)

View file

@ -16,8 +16,8 @@ Scotty. If not, see <https://www.gnu.org/licenses/>.
package deezer_test
import (
_ "embed"
"encoding/json"
"os"
"testing"
"github.com/stretchr/testify/assert"
@ -25,11 +25,16 @@ import (
"go.uploadedlobster.com/scotty/internal/backends/deezer"
)
var (
//go:embed testdata/user-tracks.json
testUserTracks []byte
//go:embed testdata/user-history.json
testUserHistory []byte
)
func TestUserTracksResult(t *testing.T) {
data, err := os.ReadFile("testdata/user-tracks.json")
require.NoError(t, err)
result := deezer.TracksResult{}
err = json.Unmarshal(data, &result)
err := json.Unmarshal(testUserTracks, &result)
require.NoError(t, err)
assert := assert.New(t)
@ -45,10 +50,8 @@ func TestUserTracksResult(t *testing.T) {
}
func TestUserHistoryResult(t *testing.T) {
data, err := os.ReadFile("testdata/user-history.json")
require.NoError(t, err)
result := deezer.HistoryResult{}
err = json.Unmarshal(data, &result)
err := json.Unmarshal(testUserHistory, &result)
require.NoError(t, err)
assert := assert.New(t)

View file

@ -23,8 +23,8 @@ THE SOFTWARE.
package spotify_test
import (
_ "embed"
"encoding/json"
"os"
"testing"
"github.com/stretchr/testify/assert"
@ -32,11 +32,12 @@ import (
"go.uploadedlobster.com/scotty/internal/backends/spotify"
)
//go:embed testdata/recently-played.json
var testRecentlyPlayed []byte
func TestRecentlyPlayedResult(t *testing.T) {
data, err := os.ReadFile("testdata/recently-played.json")
require.NoError(t, err)
result := spotify.RecentlyPlayedResult{}
err = json.Unmarshal(data, &result)
err := json.Unmarshal(testRecentlyPlayed, &result)
require.NoError(t, err)
assert := assert.New(t)

View file

@ -18,8 +18,8 @@ Scotty. If not, see <https://www.gnu.org/licenses/>.
package spotify_test
import (
_ "embed"
"encoding/json"
"os"
"testing"
"time"
@ -30,6 +30,13 @@ import (
"go.uploadedlobster.com/scotty/internal/config"
)
var (
//go:embed testdata/listen.json
testListen []byte
//go:embed testdata/track.json
testTrack []byte
)
func TestFromConfig(t *testing.T) {
c := viper.New()
c.Set("client-id", "someclientid")
@ -40,10 +47,8 @@ func TestFromConfig(t *testing.T) {
}
func TestSpotifyListenAsListen(t *testing.T) {
data, err := os.ReadFile("testdata/listen.json")
require.NoError(t, err)
spListen := spotify.Listen{}
err = json.Unmarshal(data, &spListen)
err := json.Unmarshal(testListen, &spListen)
require.NoError(t, err)
listen := spListen.AsListen()
listenedAt, _ := time.Parse(time.RFC3339, "2023-11-21T15:24:33.361Z")
@ -65,10 +70,8 @@ func TestSpotifyListenAsListen(t *testing.T) {
}
func TestSavedTrackAsLove(t *testing.T) {
data, err := os.ReadFile("testdata/track.json")
require.NoError(t, err)
track := spotify.SavedTrack{}
err = json.Unmarshal(data, &track)
err := json.Unmarshal(testTrack, &track)
require.NoError(t, err)
love := track.AsLove()
created, _ := time.Parse(time.RFC3339, "2022-02-13T21:46:08Z")