Select/assign flairs

Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
Vartan Benohanian
2020-09-10 23:41:17 -04:00
parent 519a448ff9
commit c37b934c01
2 changed files with 180 additions and 0 deletions
+102
View File
@@ -554,3 +554,105 @@ func TestFlairService_ChoicesForNewPost(t *testing.T) {
require.NoError(t, err)
require.Equal(t, expectedFlairChoices, choices)
}
func TestFlairService_Select(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
mux.HandleFunc("/r/testsubreddit/api/selectflair", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("api_type", "json")
form.Set("name", "user1")
form.Set("flair_template_id", "id123")
form.Set("text", "text123")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
})
_, err := client.Flair.Select(ctx, "testsubreddit", nil)
require.EqualError(t, err, "request: cannot be nil")
_, err = client.Flair.Select(ctx, "testsubreddit", &FlairSelectRequest{
ID: "id123",
Text: "text123",
})
require.NoError(t, err)
}
func TestFlairService_Assign(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
mux.HandleFunc("/r/testsubreddit/api/selectflair", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("api_type", "json")
form.Set("name", "testuser")
form.Set("flair_template_id", "id123")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
})
_, err := client.Flair.Assign(ctx, "testsubreddit", "testuser", nil)
require.EqualError(t, err, "request: cannot be nil")
_, err = client.Flair.Assign(ctx, "testsubreddit", "testuser", &FlairSelectRequest{
ID: "id123",
})
require.NoError(t, err)
}
func TestFlairService_SelectForPost(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
mux.HandleFunc("/api/selectflair", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("api_type", "json")
form.Set("link", "t3_123")
form.Set("flair_template_id", "id123")
form.Set("text", "text123")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
})
_, err := client.Flair.SelectForPost(ctx, "t3_123", nil)
require.EqualError(t, err, "request: cannot be nil")
_, err = client.Flair.SelectForPost(ctx, "t3_123", &FlairSelectRequest{
ID: "id123",
Text: "text123",
})
require.NoError(t, err)
}
func TestFlairService_RemoveFromPost(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
mux.HandleFunc("/api/selectflair", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("api_type", "json")
form.Set("link", "t3_123")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
})
_, err := client.Flair.RemoveFromPost(ctx, "t3_123")
require.NoError(t, err)
}