aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2023-07-01 18:54:52 +0200
committerFlorian Fischer <florian.fischer@muhq.space>2023-07-01 18:54:52 +0200
commitd491f136b40b9bff6ec0ff1e0a4f26cf855a9ffc (patch)
treee7fa41adc1a7aeb940095c1151958e74b254034a
parenta95fc844baf1f96510d59ba77a05755cd24fb777 (diff)
downloadWRMS-d491f136b40b9bff6ec0ff1e0a4f26cf855a9ffc.tar.gz
WRMS-d491f136b40b9bff6ec0ff1e0a4f26cf855a9ffc.zip
add simple wrms test
-rw-r--r--wrms.go4
-rw-r--r--wrms_test.go85
2 files changed, 88 insertions, 1 deletions
diff --git a/wrms.go b/wrms.go
index 9d94325..9371d93 100644
--- a/wrms.go
+++ b/wrms.go
@@ -394,7 +394,7 @@ func (wrms *Wrms) AdjustSongWeight(connId uuid.UUID, songUri string, vote string
continue
}
- llog.Info("Adjusting song %s (ptr=%p)", s.Uri, s)
+ llog.Info("Adjusting song %v (ptr=%p)", s, s)
switch vote {
case "up":
if _, ok := s.Upvotes[connId]; ok {
@@ -405,6 +405,7 @@ func (wrms *Wrms) AdjustSongWeight(connId uuid.UUID, songUri string, vote string
if _, ok := s.Downvotes[connId]; ok {
delete(s.Downvotes, connId)
s.Weight += 2
+ llog.Debug("Flip downvote")
} else {
s.Weight += 1
}
@@ -419,6 +420,7 @@ func (wrms *Wrms) AdjustSongWeight(connId uuid.UUID, songUri string, vote string
if _, ok := s.Upvotes[connId]; ok {
delete(s.Upvotes, connId)
+ llog.Debug("Flip upvote")
s.Weight -= 2
} else {
s.Weight -= 1
diff --git a/wrms_test.go b/wrms_test.go
new file mode 100644
index 0000000..edb174f
--- /dev/null
+++ b/wrms_test.go
@@ -0,0 +1,85 @@
+package main
+
+import (
+ "github.com/google/uuid"
+ "io"
+ "muhq.space/go/wrms/llog"
+ "testing"
+)
+
+type mockPlayer struct{}
+
+func (p *mockPlayer) Play(*Song) {}
+func (p *mockPlayer) PlayUri(string) {}
+func (p *mockPlayer) PlayData(io.Reader) {}
+func (p *mockPlayer) Search(pattern string) (res chan []Song) { return }
+func (p *mockPlayer) Playing() bool { return false }
+func (p *mockPlayer) Pause() {}
+func (p *mockPlayer) Continue() {}
+func (p *mockPlayer) Stop() {}
+
+var alice, _ = uuid.NewRandom()
+
+func TestWrmsAdd(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ wrms.AddSong(s1)
+
+ if len(wrms.queue) != 1 {
+ t.Log("len should be 1")
+ t.Fail()
+ }
+}
+
+func TestWrmsAdjust(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ wrms.AddSong(s1)
+
+ wrms.AdjustSongWeight(alice, s1.Uri, "up")
+ if wrms.queue[0].Weight != 1 {
+ t.Log("song weight should be 1")
+ t.Fail()
+ }
+}
+
+func TestWrmsUpDownNext(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ s2 := NewDummySong("song2", "snfmt")
+ wrms.AddSong(s1)
+ wrms.AddSong(s2)
+
+ wrms.AdjustSongWeight(alice, s1.Uri, "down")
+ wrms.AdjustSongWeight(alice, s2.Uri, "up")
+ wrms.Next()
+ if wrms.CurrentSong.Load().Uri != s2.Uri {
+ t.Log("Not retrning the upvoted song s2")
+ t.Fail()
+ }
+}
+
+func TestWrmsUpUpDownNextNext(t *testing.T) {
+ wrms := Wrms{Player: &mockPlayer{}}
+ s1 := NewDummySong("song1", "snfmt")
+ s2 := NewDummySong("song2", "snfmt")
+ s3 := NewDummySong("song3", "snfmt")
+ wrms.AddSong(s1)
+ wrms.AddSong(s2)
+ wrms.AddSong(s3)
+
+ llog.Info("UpUpDown test")
+ wrms.AdjustSongWeight(alice, s1.Uri, "up")
+ wrms.AdjustSongWeight(alice, s2.Uri, "down")
+ wrms.AdjustSongWeight(alice, s3.Uri, "up")
+ wrms.Next()
+ if wrms.CurrentSong.Load().Uri == s2.Uri {
+ t.Log("Playing the downvoted song s2")
+ t.Fail()
+ }
+ wrms.Next()
+ if wrms.CurrentSong.Load().Uri == s2.Uri {
+ t.Log("Playing the downvoted song s2")
+ t.Fail()
+ }
+}