Get flair choices

Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
Vartan Benohanian
2020-09-10 00:39:50 -04:00
parent def7e3bdb7
commit 519a448ff9
3 changed files with 243 additions and 0 deletions
+142
View File
@@ -83,6 +83,45 @@ var expectedFlairTemplate = &FlairTemplate{
CSSClass: "",
}
var expectedFlairChoices = []*FlairChoice{
{
TemplateID: "c4edd5ce-40e8-11e7-b814-0ef91bd65558",
Text: "Reddit API",
Editable: false,
Position: "left",
CSSClass: "",
},
{
TemplateID: "49bb3d06-0dad-11e7-b897-0e42c2400b7a",
Text: "PRAW",
Editable: false,
Position: "left",
CSSClass: "",
},
{
TemplateID: "f1905376-40e9-11e7-a0dc-0e2f53ef3712",
Text: "snoowrap",
Editable: false,
Position: "left",
CSSClass: "",
},
{
TemplateID: "03dc6ea8-40e9-11e7-8abb-0eb85aed0bce",
Text: "Other API Wrapper",
Editable: false,
Position: "left",
CSSClass: "",
},
}
var expectedFlairChoice = &FlairChoice{
TemplateID: "03dc6ea8-40e9-11e7-8abb-0eb85aed0bce",
Text: "Other API Wrapper",
Editable: false,
Position: "left",
CSSClass: "",
}
func TestFlairService_GetUserFlairs(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
@@ -412,3 +451,106 @@ func TestFlairService_ReorderPostTemplates(t *testing.T) {
_, err := client.Flair.ReorderPostTemplates(ctx, "testsubreddit", []string{"test1", "test2", "test3", "test4"})
require.NoError(t, err)
}
func TestFlairService_Choices(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
blob, err := readFileContents("../testdata/flair/choices.json")
require.NoError(t, err)
mux.HandleFunc("/r/testsubreddit/api/flairselector", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("name", "user1")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
fmt.Fprint(w, blob)
})
choices, current, _, err := client.Flair.Choices(ctx, "testsubreddit")
require.NoError(t, err)
require.Equal(t, expectedFlairChoices, choices)
require.Equal(t, expectedFlairChoice, current)
}
func TestFlairService_ChoicesOf(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
blob, err := readFileContents("../testdata/flair/choices.json")
require.NoError(t, err)
mux.HandleFunc("/r/testsubreddit/api/flairselector", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("name", "testuser")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
fmt.Fprint(w, blob)
})
choices, current, _, err := client.Flair.ChoicesOf(ctx, "testsubreddit", "testuser")
require.NoError(t, err)
require.Equal(t, expectedFlairChoices, choices)
require.Equal(t, expectedFlairChoice, current)
}
func TestFlairService_ChoicesForPost(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
blob, err := readFileContents("../testdata/flair/choices.json")
require.NoError(t, err)
mux.HandleFunc("/api/flairselector", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("link", "t3_123")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
fmt.Fprint(w, blob)
})
choices, current, _, err := client.Flair.ChoicesForPost(ctx, "t3_123")
require.NoError(t, err)
require.Equal(t, expectedFlairChoices, choices)
require.Equal(t, expectedFlairChoice, current)
}
func TestFlairService_ChoicesForNewPost(t *testing.T) {
client, mux, teardown := setup()
defer teardown()
blob, err := readFileContents("../testdata/flair/choices.json")
require.NoError(t, err)
mux.HandleFunc("/r/testsubreddit/api/flairselector", func(w http.ResponseWriter, r *http.Request) {
require.Equal(t, http.MethodPost, r.Method)
form := url.Values{}
form.Set("is_newlink", "true")
err := r.ParseForm()
require.NoError(t, err)
require.Equal(t, form, r.PostForm)
fmt.Fprint(w, blob)
})
choices, _, err := client.Flair.ChoicesForNewPost(ctx, "testsubreddit")
require.NoError(t, err)
require.Equal(t, expectedFlairChoices, choices)
}