2020-07-11 13:49:07 -04:00
|
|
|
package reddit
|
2020-04-29 15:59:18 -04:00
|
|
|
|
|
|
|
import (
|
2020-07-20 22:47:59 -04:00
|
|
|
"fmt"
|
2020-04-29 15:59:18 -04:00
|
|
|
"net/http"
|
|
|
|
"net/url"
|
|
|
|
"testing"
|
2020-07-20 22:47:59 -04:00
|
|
|
"time"
|
2020-05-29 19:50:52 -04:00
|
|
|
|
2020-08-11 16:21:07 -04:00
|
|
|
"github.com/stretchr/testify/require"
|
2020-04-29 15:59:18 -04:00
|
|
|
)
|
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
var expectedPostAndComments = &PostAndComments{
|
|
|
|
Post: &Post{
|
|
|
|
ID: "testpost",
|
|
|
|
FullID: "t3_testpost",
|
|
|
|
Created: &Timestamp{time.Date(2020, 7, 18, 10, 26, 7, 0, time.UTC)},
|
|
|
|
Edited: &Timestamp{time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)},
|
2020-07-18 10:02:43 -04:00
|
|
|
|
2020-08-19 09:14:39 -04:00
|
|
|
Permalink: "/r/test/comments/testpost/test/",
|
2020-07-30 12:22:39 -04:00
|
|
|
URL: "https://www.reddit.com/r/test/comments/testpost/test/",
|
2020-07-18 10:02:43 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
Title: "Test",
|
|
|
|
Body: "Hello",
|
2020-07-18 10:02:43 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
Score: 1,
|
|
|
|
UpvoteRatio: 1,
|
|
|
|
NumberOfComments: 2,
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
SubredditName: "test",
|
|
|
|
SubredditNamePrefixed: "r/test",
|
2020-08-17 22:01:04 -04:00
|
|
|
SubredditID: "t5_2qh23",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-08-17 22:01:04 -04:00
|
|
|
Author: "testuser",
|
|
|
|
AuthorID: "t2_testuser",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
IsSelfPost: true,
|
|
|
|
},
|
|
|
|
Comments: []*Comment{
|
|
|
|
{
|
|
|
|
ID: "testc1",
|
|
|
|
FullID: "t1_testc1",
|
|
|
|
Created: &Timestamp{time.Date(2020, 7, 18, 10, 31, 59, 0, time.UTC)},
|
|
|
|
Edited: &Timestamp{time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)},
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
ParentID: "t3_testpost",
|
2020-08-19 09:14:39 -04:00
|
|
|
Permalink: "/r/test/comments/testpost/test/testc1/",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
Body: "Hi",
|
|
|
|
Author: "testuser",
|
|
|
|
AuthorID: "t2_testuser",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-08-17 22:01:04 -04:00
|
|
|
SubredditName: "test",
|
2020-07-30 12:22:39 -04:00
|
|
|
SubredditNamePrefixed: "r/test",
|
|
|
|
SubredditID: "t5_2qh23",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
Score: 1,
|
|
|
|
Controversiality: 0,
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
PostID: "t3_testpost",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
IsSubmitter: true,
|
|
|
|
CanGild: true,
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
Replies: Replies{
|
|
|
|
Comments: []*Comment{
|
|
|
|
{
|
|
|
|
ID: "testc2",
|
|
|
|
FullID: "t1_testc2",
|
|
|
|
Created: &Timestamp{time.Date(2020, 7, 18, 10, 32, 28, 0, time.UTC)},
|
|
|
|
Edited: &Timestamp{time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)},
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
ParentID: "t1_testc1",
|
2020-08-19 09:14:39 -04:00
|
|
|
Permalink: "/r/test/comments/testpost/test/testc2/",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
Body: "Hello",
|
|
|
|
Author: "testuser",
|
|
|
|
AuthorID: "t2_testuser",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-08-17 22:01:04 -04:00
|
|
|
SubredditName: "test",
|
2020-07-30 12:22:39 -04:00
|
|
|
SubredditNamePrefixed: "r/test",
|
|
|
|
SubredditID: "t5_2qh23",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
Score: 1,
|
|
|
|
Controversiality: 0,
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
PostID: "t3_testpost",
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
IsSubmitter: true,
|
|
|
|
CanGild: true,
|
|
|
|
},
|
2020-07-20 22:47:59 -04:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2020-07-22 21:54:19 -04:00
|
|
|
var expectedSubmittedPost = &Submitted{
|
|
|
|
ID: "hw6l6a",
|
|
|
|
FullID: "t3_hw6l6a",
|
|
|
|
URL: "https://www.reddit.com/r/test/comments/hw6l6a/test_title/",
|
|
|
|
}
|
|
|
|
|
|
|
|
var expectedEditedPost = &Post{
|
|
|
|
ID: "hw6l6a",
|
|
|
|
FullID: "t3_hw6l6a",
|
|
|
|
Created: &Timestamp{time.Date(2020, 7, 23, 1, 24, 55, 0, time.UTC)},
|
|
|
|
Edited: &Timestamp{time.Date(2020, 7, 23, 1, 42, 44, 0, time.UTC)},
|
|
|
|
|
2020-08-19 09:14:39 -04:00
|
|
|
Permalink: "/r/test/comments/hw6l6a/test_title/",
|
2020-07-22 21:54:19 -04:00
|
|
|
URL: "https://www.reddit.com/r/test/comments/hw6l6a/test_title/",
|
|
|
|
|
|
|
|
Title: "Test Title",
|
|
|
|
Body: "this is edited",
|
|
|
|
|
|
|
|
Likes: Bool(true),
|
|
|
|
|
|
|
|
Score: 1,
|
|
|
|
UpvoteRatio: 1,
|
|
|
|
NumberOfComments: 0,
|
|
|
|
|
|
|
|
SubredditName: "test",
|
|
|
|
SubredditNamePrefixed: "r/test",
|
2020-08-17 22:01:04 -04:00
|
|
|
SubredditID: "t5_2qh23",
|
2020-07-22 21:54:19 -04:00
|
|
|
|
2020-08-17 22:01:04 -04:00
|
|
|
Author: "v_95",
|
|
|
|
AuthorID: "t2_164ab8",
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
Spoiler: true,
|
|
|
|
IsSelfPost: true,
|
|
|
|
}
|
|
|
|
|
2020-08-14 11:29:13 -04:00
|
|
|
var expectedPost2 = &Post{
|
|
|
|
ID: "i2gvs1",
|
|
|
|
FullID: "t3_i2gvs1",
|
|
|
|
Created: &Timestamp{time.Date(2020, 8, 2, 18, 23, 37, 0, time.UTC)},
|
|
|
|
Edited: &Timestamp{time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)},
|
|
|
|
|
2020-08-19 09:14:39 -04:00
|
|
|
Permalink: "/r/test/comments/i2gvs1/this_is_a_title/",
|
2020-08-14 11:29:13 -04:00
|
|
|
URL: "http://example.com",
|
|
|
|
|
|
|
|
Title: "This is a title",
|
|
|
|
|
|
|
|
Likes: Bool(true),
|
|
|
|
|
|
|
|
Score: 1,
|
|
|
|
UpvoteRatio: 1,
|
|
|
|
NumberOfComments: 0,
|
|
|
|
|
|
|
|
SubredditName: "test",
|
|
|
|
SubredditNamePrefixed: "r/test",
|
2020-08-17 22:01:04 -04:00
|
|
|
SubredditID: "t5_2qh23",
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-17 22:01:04 -04:00
|
|
|
Author: "v_95",
|
|
|
|
AuthorID: "t2_164ab8",
|
2020-08-14 11:29:13 -04:00
|
|
|
}
|
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
var expectedPostDuplicates = []*Post{
|
|
|
|
{
|
|
|
|
ID: "8kbs85",
|
|
|
|
FullID: "t3_8kbs85",
|
|
|
|
Created: &Timestamp{time.Date(2018, 5, 18, 9, 10, 18, 0, time.UTC)},
|
|
|
|
Edited: &Timestamp{time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)},
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Permalink: "/r/test/comments/8kbs85/test/",
|
|
|
|
URL: "http://example.com",
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Title: "test",
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Likes: nil,
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Score: 1,
|
|
|
|
UpvoteRatio: 0.66,
|
|
|
|
NumberOfComments: 1,
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
SubredditName: "test",
|
|
|
|
SubredditNamePrefixed: "r/test",
|
|
|
|
SubredditID: "t5_2qh23",
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Author: "GarlicoinAccount",
|
|
|
|
AuthorID: "t2_d2v1r90",
|
|
|
|
},
|
|
|
|
{
|
|
|
|
ID: "le1tc",
|
|
|
|
FullID: "t3_le1tc",
|
|
|
|
Created: &Timestamp{time.Date(2011, 10, 16, 13, 26, 40, 0, time.UTC)},
|
|
|
|
Edited: &Timestamp{time.Date(1, 1, 1, 0, 0, 0, 0, time.UTC)},
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Permalink: "/r/test/comments/le1tc/test_to_see_if_this_fixes_the_problem_of_my_likes/",
|
|
|
|
URL: "http://www.example.com",
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Title: "Test to see if this fixes the problem of my \"likes\" from the last 7 months vanishing.",
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Likes: nil,
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Score: 2,
|
|
|
|
UpvoteRatio: 1,
|
|
|
|
NumberOfComments: 1,
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
SubredditName: "test",
|
|
|
|
SubredditNamePrefixed: "r/test",
|
|
|
|
SubredditID: "t5_2qh23",
|
2020-08-14 11:29:13 -04:00
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
Author: "prog101",
|
|
|
|
AuthorID: "t2_8dyo",
|
2020-08-14 11:29:13 -04:00
|
|
|
},
|
|
|
|
}
|
|
|
|
|
2020-07-20 22:47:59 -04:00
|
|
|
func TestPostService_Get(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-20 22:47:59 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/post.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-08-14 11:29:13 -04:00
|
|
|
mux.HandleFunc("/comments/abc123", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodGet, r.Method)
|
2020-07-20 22:47:59 -04:00
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
2020-08-14 11:29:13 -04:00
|
|
|
postAndComments, _, err := client.Post.Get(ctx, "abc123")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedPostAndComments, postAndComments)
|
2020-07-20 22:47:59 -04:00
|
|
|
}
|
2020-07-18 10:02:43 -04:00
|
|
|
|
2020-08-14 11:29:13 -04:00
|
|
|
func TestPostService_Duplicates(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-08-14 11:29:13 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/duplicates.json")
|
2020-08-14 11:29:13 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
mux.HandleFunc("/duplicates/abc123", func(w http.ResponseWriter, r *http.Request) {
|
|
|
|
require.Equal(t, http.MethodGet, r.Method)
|
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("limit", "2")
|
|
|
|
form.Set("sr", "test")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.Form)
|
|
|
|
|
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
2020-08-29 14:20:30 -04:00
|
|
|
post, postDuplicates, resp, err := client.Post.Duplicates(ctx, "abc123", &ListDuplicatePostOptions{
|
2020-08-14 11:29:13 -04:00
|
|
|
ListOptions: ListOptions{
|
|
|
|
Limit: 2,
|
|
|
|
},
|
|
|
|
Subreddit: "test",
|
|
|
|
})
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedPost2, post)
|
|
|
|
require.Equal(t, expectedPostDuplicates, postDuplicates)
|
2020-08-29 14:20:30 -04:00
|
|
|
require.Equal(t, "t3_le1tc", resp.After)
|
2020-08-14 11:29:13 -04:00
|
|
|
}
|
|
|
|
|
2020-07-22 21:54:19 -04:00
|
|
|
func TestPostService_SubmitText(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-22 21:54:19 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/submit.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
mux.HandleFunc("/api/submit", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("kind", "self")
|
|
|
|
form.Set("sr", "test")
|
|
|
|
form.Set("title", "Test Title")
|
|
|
|
form.Set("text", "Test Text")
|
|
|
|
form.Set("spoiler", "true")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.Form)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
|
|
|
submittedPost, _, err := client.Post.SubmitText(ctx, SubmitTextOptions{
|
|
|
|
Subreddit: "test",
|
|
|
|
Title: "Test Title",
|
|
|
|
Text: "Test Text",
|
|
|
|
Spoiler: true,
|
|
|
|
})
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedSubmittedPost, submittedPost)
|
2020-07-22 21:54:19 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SubmitLink(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-22 21:54:19 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/submit.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
mux.HandleFunc("/api/submit", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("kind", "link")
|
|
|
|
form.Set("sr", "test")
|
|
|
|
form.Set("title", "Test Title")
|
|
|
|
form.Set("url", "https://www.example.com")
|
|
|
|
form.Set("sendreplies", "false")
|
|
|
|
form.Set("resubmit", "true")
|
|
|
|
form.Set("nsfw", "true")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.Form)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
|
|
|
submittedPost, _, err := client.Post.SubmitLink(ctx, SubmitLinkOptions{
|
|
|
|
Subreddit: "test",
|
|
|
|
Title: "Test Title",
|
|
|
|
URL: "https://www.example.com",
|
|
|
|
SendReplies: Bool(false),
|
|
|
|
Resubmit: true,
|
|
|
|
NSFW: true,
|
|
|
|
})
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedSubmittedPost, submittedPost)
|
2020-07-22 21:54:19 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Edit(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-22 21:54:19 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/edit.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
mux.HandleFunc("/api/editusertext", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("return_rtjson", "true")
|
|
|
|
form.Set("thing_id", "t3_test")
|
|
|
|
form.Set("text", "test edit")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.Form)
|
2020-07-22 21:54:19 -04:00
|
|
|
|
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
|
|
|
editedPost, _, err := client.Post.Edit(ctx, "t3_test", "test edit")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedEditedPost, editedPost)
|
2020-07-22 21:54:19 -04:00
|
|
|
}
|
|
|
|
|
2020-06-27 23:53:59 -04:00
|
|
|
func TestPostService_Hide(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-04-29 15:59:18 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/hide", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-04-29 15:59:18 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "1,2,3")
|
|
|
|
|
2020-05-29 19:50:52 -04:00
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-04-29 15:59:18 -04:00
|
|
|
})
|
|
|
|
|
2020-06-22 21:52:34 -04:00
|
|
|
_, err := client.Post.Hide(ctx)
|
2020-08-11 16:21:07 -04:00
|
|
|
require.EqualError(t, err, "must provide at least 1 id")
|
2020-04-29 15:59:18 -04:00
|
|
|
|
2020-06-22 21:52:34 -04:00
|
|
|
res, err := client.Post.Hide(ctx, "1", "2", "3")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-04-29 15:59:18 -04:00
|
|
|
}
|
|
|
|
|
2020-06-27 23:53:59 -04:00
|
|
|
func TestPostService_Unhide(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-04-29 15:59:18 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/unhide", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-04-29 15:59:18 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "1,2,3")
|
|
|
|
|
2020-05-29 19:50:52 -04:00
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-04-29 15:59:18 -04:00
|
|
|
})
|
|
|
|
|
2020-06-22 21:52:34 -04:00
|
|
|
_, err := client.Post.Unhide(ctx)
|
2020-08-11 16:21:07 -04:00
|
|
|
require.EqualError(t, err, "must provide at least 1 id")
|
2020-04-29 15:59:18 -04:00
|
|
|
|
2020-06-22 21:52:34 -04:00
|
|
|
res, err := client.Post.Unhide(ctx, "1", "2", "3")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-04-29 15:59:18 -04:00
|
|
|
}
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
func TestPostService_MarkNSFW(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-13 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/marknsfw", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
2020-07-15 22:28:52 -04:00
|
|
|
form.Set("id", "t3_test")
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-13 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
2020-07-15 22:28:52 -04:00
|
|
|
res, err := client.Post.MarkNSFW(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-13 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_UnmarkNSFW(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-13 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/unmarknsfw", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
2020-07-15 22:28:52 -04:00
|
|
|
form.Set("id", "t3_test")
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-13 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
2020-07-15 22:28:52 -04:00
|
|
|
res, err := client.Post.UnmarkNSFW(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-13 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Spoiler(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-13 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/spoiler", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
2020-07-15 22:28:52 -04:00
|
|
|
form.Set("id", "t3_test")
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-13 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
2020-07-15 22:28:52 -04:00
|
|
|
res, err := client.Post.Spoiler(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-13 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Unspoiler(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-13 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/unspoiler", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
2020-07-15 22:28:52 -04:00
|
|
|
form.Set("id", "t3_test")
|
2020-07-13 23:05:24 -04:00
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-13 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
2020-07-15 22:28:52 -04:00
|
|
|
res, err := client.Post.Unspoiler(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-15 22:28:52 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Sticky(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-15 22:28:52 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_subreddit_sticky", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-15 22:28:52 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "true")
|
|
|
|
form.Set("num", "1")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-15 22:28:52 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Sticky(ctx, "t3_test", false)
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-15 22:28:52 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Unsticky(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-15 22:28:52 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_subreddit_sticky", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-15 22:28:52 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "false")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-15 22:28:52 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Unsticky(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-15 22:28:52 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_PinToProfile(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-15 22:28:52 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_subreddit_sticky", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-15 22:28:52 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "true")
|
|
|
|
form.Set("to_profile", "true")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-15 22:28:52 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.PinToProfile(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-15 22:28:52 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_UnpinFromProfile(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-15 22:28:52 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_subreddit_sticky", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-15 22:28:52 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "false")
|
|
|
|
form.Set("to_profile", "true")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-15 22:28:52 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.UnpinFromProfile(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-13 23:05:24 -04:00
|
|
|
}
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortBest(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "confidence")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortBest(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortTop(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "top")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortTop(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortNew(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "new")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortNew(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortControversial(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "controversial")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortControversial(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortOld(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "old")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortOld(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortRandom(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "random")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortRandom(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortAMA(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "qa")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortAMA(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_SetSuggestedSortLive(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "live")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.SetSuggestedSortLive(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_ClearSuggestedSort(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 18:33:43 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_suggested_sort", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 18:33:43 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("sort", "")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 18:33:43 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.ClearSuggestedSort(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 18:33:43 -04:00
|
|
|
}
|
2020-07-16 19:07:19 -04:00
|
|
|
|
|
|
|
func TestPostService_EnableContestMode(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 19:07:19 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_contest_mode", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 19:07:19 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "true")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 19:07:19 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.EnableContestMode(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 19:07:19 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_DisableContestMode(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-16 19:07:19 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/set_contest_mode", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-16 19:07:19 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "false")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-16 19:07:19 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.DisableContestMode(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-16 19:07:19 -04:00
|
|
|
}
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-08-18 23:12:35 -04:00
|
|
|
func TestPostService_LoadMoreReplies(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-20 22:47:59 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/more.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
|
|
|
mux.HandleFunc("/api/morechildren", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-18 23:12:35 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("link_id", "t3_123")
|
2020-08-18 23:12:35 -04:00
|
|
|
form.Set("children", "def,ghi,jkl")
|
2020-07-20 22:47:59 -04:00
|
|
|
form.Set("api_type", "json")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-08-18 23:12:35 -04:00
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
2020-08-18 23:12:35 -04:00
|
|
|
_, err = client.Post.LoadMoreComments(ctx, nil)
|
|
|
|
require.EqualError(t, err, "pc: cannot be nil")
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-08-18 23:12:35 -04:00
|
|
|
resp, err := client.Post.LoadMoreComments(ctx, &PostAndComments{})
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Nil(t, resp)
|
2020-08-18 23:12:35 -04:00
|
|
|
require.Nil(t, err)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
2020-08-18 23:12:35 -04:00
|
|
|
pc := &PostAndComments{
|
|
|
|
Post: &Post{
|
|
|
|
FullID: "t3_123",
|
|
|
|
},
|
|
|
|
Comments: []*Comment{
|
|
|
|
{
|
|
|
|
FullID: "t1_abc",
|
|
|
|
},
|
|
|
|
},
|
|
|
|
More: &More{
|
|
|
|
Children: []string{"def", "ghi", "jkl"},
|
|
|
|
},
|
2020-07-20 22:47:59 -04:00
|
|
|
}
|
|
|
|
|
2020-08-18 23:12:35 -04:00
|
|
|
_, err = client.Post.LoadMoreComments(ctx, pc)
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-08-18 23:12:35 -04:00
|
|
|
require.False(t, pc.HasMore())
|
|
|
|
require.Len(t, pc.Comments, 2)
|
|
|
|
require.True(t, pc.Comments[1].HasMore())
|
|
|
|
require.Len(t, pc.Comments[0].Replies.Comments, 1)
|
|
|
|
require.Len(t, pc.Comments[0].Replies.Comments[0].Replies.Comments, 1)
|
2020-07-20 22:47:59 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_RandomFromSubreddits(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-20 22:47:59 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/post.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
|
|
|
mux.HandleFunc("/r/test/random", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodGet, r.Method)
|
2020-07-20 22:47:59 -04:00
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
postAndComments, _, err := client.Post.RandomFromSubreddits(ctx, "test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedPostAndComments, postAndComments)
|
2020-07-20 22:47:59 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Random(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-20 22:47:59 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/post.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
|
|
|
mux.HandleFunc("/r/all/random", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodGet, r.Method)
|
2020-07-20 22:47:59 -04:00
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
postAndComments, _, err := client.Post.Random(ctx)
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedPostAndComments, postAndComments)
|
2020-07-20 22:47:59 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_RandomFromSubscriptions(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-20 22:47:59 -04:00
|
|
|
defer teardown()
|
|
|
|
|
2020-08-20 14:37:59 -04:00
|
|
|
blob, err := readFileContents("../testdata/post/post.json")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
2020-07-20 22:47:59 -04:00
|
|
|
|
|
|
|
mux.HandleFunc("/random", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodGet, r.Method)
|
2020-07-20 22:47:59 -04:00
|
|
|
fmt.Fprint(w, blob)
|
|
|
|
})
|
|
|
|
|
2020-07-30 12:22:39 -04:00
|
|
|
postAndComments, _, err := client.Post.RandomFromSubscriptions(ctx)
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, expectedPostAndComments, postAndComments)
|
2020-07-20 22:47:59 -04:00
|
|
|
}
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
func TestPostService_Delete(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/del", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Delete(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Save(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/save", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Save(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Unsave(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/unsave", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Unsave(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_EnableReplies(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/sendreplies", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "true")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.EnableReplies(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_DisableReplies(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/sendreplies", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("state", "false")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.DisableReplies(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Lock(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/lock", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Lock(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Unlock(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/unlock", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Unlock(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Upvote(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/vote", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("dir", "1")
|
|
|
|
form.Set("rank", "10")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Upvote(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_Downvote(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/vote", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("dir", "-1")
|
|
|
|
form.Set("rank", "10")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.Downvote(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
func TestPostService_RemoveVote(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-07-21 23:05:24 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/vote", func(w http.ResponseWriter, r *http.Request) {
|
2020-08-11 16:21:07 -04:00
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
2020-07-21 23:05:24 -04:00
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("id", "t3_test")
|
|
|
|
form.Set("dir", "0")
|
|
|
|
form.Set("rank", "10")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
2020-07-21 23:05:24 -04:00
|
|
|
})
|
|
|
|
|
|
|
|
res, err := client.Post.RemoveVote(ctx, "t3_test")
|
2020-08-11 16:21:07 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, http.StatusOK, res.StatusCode)
|
2020-07-21 23:05:24 -04:00
|
|
|
}
|
2020-08-13 17:23:39 -04:00
|
|
|
|
|
|
|
func TestPostService_MarkVisited(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-08-13 17:23:39 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/store_visits", func(w http.ResponseWriter, r *http.Request) {
|
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("links", "t3_test1,t3_test2,t3_test3")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
|
|
|
})
|
|
|
|
|
2020-08-18 23:12:35 -04:00
|
|
|
_, err := client.Post.MarkVisited(ctx)
|
|
|
|
require.EqualError(t, err, "must provide at least 1 id")
|
|
|
|
|
|
|
|
_, err = client.Post.MarkVisited(ctx, "t3_test1", "t3_test2", "t3_test3")
|
2020-08-13 17:23:39 -04:00
|
|
|
require.NoError(t, err)
|
|
|
|
}
|
2020-08-20 16:25:23 -04:00
|
|
|
|
|
|
|
func TestPostService_Report(t *testing.T) {
|
2020-08-23 22:34:59 -04:00
|
|
|
client, mux, teardown := setup()
|
2020-08-20 16:25:23 -04:00
|
|
|
defer teardown()
|
|
|
|
|
|
|
|
mux.HandleFunc("/api/report", func(w http.ResponseWriter, r *http.Request) {
|
|
|
|
require.Equal(t, http.MethodPost, r.Method)
|
|
|
|
|
|
|
|
form := url.Values{}
|
|
|
|
form.Set("api_type", "json")
|
|
|
|
form.Set("thing_id", "t3_test")
|
|
|
|
form.Set("reason", "test reason")
|
|
|
|
|
|
|
|
err := r.ParseForm()
|
|
|
|
require.NoError(t, err)
|
|
|
|
require.Equal(t, form, r.PostForm)
|
|
|
|
})
|
|
|
|
|
|
|
|
_, err := client.Post.Report(ctx, "t3_test", "test reason")
|
|
|
|
require.NoError(t, err)
|
|
|
|
}
|