Add more methods to moderation service

Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
Vartan Benohanian
2020-07-13 19:52:39 -04:00
parent a0b06ed651
commit 838db037b9
3 changed files with 255 additions and 7 deletions
+145
View File
@@ -3,6 +3,7 @@ package reddit
import (
"fmt"
"net/http"
"net/url"
"testing"
"time"
@@ -63,3 +64,147 @@ func TestModerationService_GetActions(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, expectedModActionsResult, result)
}
func TestModerationService_GetActionsByType(t *testing.T) {
setup()
defer teardown()
blob := readFileContents(t, "testdata/moderation/actions.json")
mux.HandleFunc("/r/testsubreddit/about/log", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodGet, r.Method)
form := url.Values{}
form.Set("type", "testtype")
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, form, r.Form)
fmt.Fprint(w, blob)
})
result, _, err := client.Moderation.GetActionsByType(ctx, "testsubreddit", "testtype")
assert.NoError(t, err)
assert.Equal(t, expectedModActionsResult, result)
}
func TestModerationService_AcceptInvite(t *testing.T) {
setup()
defer teardown()
blob := readFileContents(t, "testdata/moderation/actions.json")
mux.HandleFunc("/r/testsubreddit/api/accept_moderator_invite", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("api_type", "json")
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, form, r.Form)
fmt.Fprint(w, blob)
})
_, err := client.Moderation.AcceptInvite(ctx, "testsubreddit")
assert.NoError(t, err)
}
func TestModerationService_Approve(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/api/approve", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("id", "t3_test")
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, form, r.Form)
})
_, err := client.Moderation.Approve(ctx, "t3_test")
assert.NoError(t, err)
}
func TestModerationService_Remove(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/api/remove", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("id", "t3_test")
form.Set("spam", "false")
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, form, r.Form)
})
_, err := client.Moderation.Remove(ctx, "t3_test")
assert.NoError(t, err)
}
func TestModerationService_RemoveSpam(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/api/remove", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("id", "t3_test")
form.Set("spam", "true")
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, form, r.Form)
})
_, err := client.Moderation.RemoveSpam(ctx, "t3_test")
assert.NoError(t, err)
}
func TestModerationService_Leave(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/api/leavemoderator", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("id", "t5_test")
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, form, r.Form)
})
_, err := client.Moderation.Leave(ctx, "t5_test")
assert.NoError(t, err)
}
func TestModerationService_LeaveContributor(t *testing.T) {
setup()
defer teardown()
mux.HandleFunc("/api/leavecontributor", func(w http.ResponseWriter, r *http.Request) {
assert.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("id", "t5_test")
err := r.ParseForm()
assert.NoError(t, err)
assert.Equal(t, form, r.Form)
})
_, err := client.Moderation.LeaveContributor(ctx, "t5_test")
assert.NoError(t, err)
}