@@ -2,44 +2,17 @@ package desec
22
33import (
44 "context"
5- "io"
65 "net/http"
7- "net/http/httptest"
8- "os"
96 "testing"
107
118 "github.com/stretchr/testify/assert"
129 "github.com/stretchr/testify/require"
1310)
1411
1512func TestAccountClient_ObtainCaptcha (t * testing.T ) {
16- mux := http .NewServeMux ()
17- server := httptest .NewServer (mux )
18- t .Cleanup (server .Close )
19-
20- client := New ("" , NewDefaultClientOptions ())
21- client .BaseURL = server .URL
22-
23- mux .HandleFunc ("/captcha/" , func (rw http.ResponseWriter , req * http.Request ) {
24- if req .Method != http .MethodPost {
25- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
26- return
27- }
28-
29- file , err := os .Open ("./fixtures/accounts_captcha.json" )
30- if err != nil {
31- http .Error (rw , err .Error (), http .StatusInternalServerError )
32- return
33- }
34-
35- defer func () { _ = file .Close () }()
36-
37- _ , err = io .Copy (rw , file )
38- if err != nil {
39- http .Error (rw , err .Error (), http .StatusInternalServerError )
40- return
41- }
42- })
13+ client , mux := setupTest (t , "" )
14+
15+ mux .HandleFunc ("POST /captcha/" , fromFixtures ("accounts_captcha.json" , http .StatusOK ))
4316
4417 captcha , err := client .Account .ObtainCaptcha (context .Background ())
4518 require .NoError (t , err )
@@ -52,19 +25,9 @@ func TestAccountClient_ObtainCaptcha(t *testing.T) {
5225}
5326
5427func TestAccountClient_Register (t * testing.T ) {
55- mux := http .NewServeMux ()
56- server := httptest .NewServer (mux )
57- t .Cleanup (server .Close )
58-
59- client := New ("" , NewDefaultClientOptions ())
60- client .BaseURL = server .URL
61-
62- mux .HandleFunc ("/auth/" , func (rw http.ResponseWriter , req * http.Request ) {
63- if req .Method != http .MethodPost {
64- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
65- return
66- }
28+ client , mux := setupTest (t , "" )
6729
30+ mux .HandleFunc ("POST /auth/" , func (rw http.ResponseWriter , _ * http.Request ) {
6831 rw .WriteHeader (http .StatusAccepted )
6932 })
7033
@@ -82,33 +45,9 @@ func TestAccountClient_Register(t *testing.T) {
8245}
8346
8447func TestAccountClient_Login (t * testing.T ) {
85- mux := http .NewServeMux ()
86- server := httptest .NewServer (mux )
87- t .Cleanup (server .Close )
88-
89- client := New ("" , NewDefaultClientOptions ())
90- client .BaseURL = server .URL
91-
92- mux .HandleFunc ("/auth/login/" , func (rw http.ResponseWriter , req * http.Request ) {
93- if req .Method != http .MethodPost {
94- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
95- return
96- }
97-
98- file , err := os .Open ("./fixtures/accounts_login.json" )
99- if err != nil {
100- http .Error (rw , err .Error (), http .StatusInternalServerError )
101- return
102- }
103-
104- defer func () { _ = file .Close () }()
105-
106- _ , err = io .Copy (rw , file )
107- if err != nil {
108- http .Error (rw , err .Error (), http .StatusInternalServerError )
109- return
110- }
111- })
48+ client , mux := setupTest (t , "" )
49+
50+ mux .HandleFunc ("POST /auth/login/" , fromFixtures ("accounts_login.json" , http .StatusOK ))
11251
11352 token ,
err := client .
Account .
Login (
context .
Background (),
"[email protected] " ,
"secret" )
11453 require .NoError (t , err )
@@ -125,19 +64,9 @@ func TestAccountClient_Login(t *testing.T) {
12564}
12665
12766func TestAccountClient_Logout (t * testing.T ) {
128- mux := http .NewServeMux ()
129- server := httptest .NewServer (mux )
130- t .Cleanup (server .Close )
131-
132- client := New ("f07Q0TRmEb-CRWPe4h64_iV2jbet" , NewDefaultClientOptions ())
133- client .BaseURL = server .URL
134-
135- mux .HandleFunc ("/auth/logout/" , func (rw http.ResponseWriter , req * http.Request ) {
136- if req .Method != http .MethodPost {
137- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
138- return
139- }
67+ client , mux := setupTest (t , "f07Q0TRmEb-CRWPe4h64_iV2jbet" )
14068
69+ mux .HandleFunc ("POST /auth/logout/" , func (rw http.ResponseWriter , _ * http.Request ) {
14170 rw .WriteHeader (http .StatusNoContent )
14271 })
14372
@@ -148,33 +77,9 @@ func TestAccountClient_Logout(t *testing.T) {
14877}
14978
15079func TestAccountClient_RetrieveInformation (t * testing.T ) {
151- mux := http .NewServeMux ()
152- server := httptest .NewServer (mux )
153- t .Cleanup (server .Close )
154-
155- client := New ("f07Q0TRmEb-CRWPe4h64_iV2jbet" , NewDefaultClientOptions ())
156- client .BaseURL = server .URL
157-
158- mux .HandleFunc ("/auth/account/" , func (rw http.ResponseWriter , req * http.Request ) {
159- if req .Method != http .MethodPost {
160- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
161- return
162- }
163-
164- file , err := os .Open ("./fixtures/accounts_retrieve.json" )
165- if err != nil {
166- http .Error (rw , err .Error (), http .StatusInternalServerError )
167- return
168- }
169-
170- defer func () { _ = file .Close () }()
171-
172- _ , err = io .Copy (rw , file )
173- if err != nil {
174- http .Error (rw , err .Error (), http .StatusInternalServerError )
175- return
176- }
177- })
80+ client , mux := setupTest (t , "f07Q0TRmEb-CRWPe4h64_iV2jbet" )
81+
82+ mux .HandleFunc ("POST /auth/account/" , fromFixtures ("accounts_retrieve.json" , http .StatusOK ))
17883
17984 account , err := client .Account .RetrieveInformation (context .Background ())
18085 require .NoError (t , err )
@@ -188,19 +93,9 @@ func TestAccountClient_RetrieveInformation(t *testing.T) {
18893}
18994
19095func TestAccountClient_PasswordReset (t * testing.T ) {
191- mux := http .NewServeMux ()
192- server := httptest .NewServer (mux )
193- t .Cleanup (server .Close )
194-
195- client := New ("" , NewDefaultClientOptions ())
196- client .BaseURL = server .URL
197-
198- mux .HandleFunc ("/" , func (rw http.ResponseWriter , req * http.Request ) {
199- if req .Method != http .MethodPost {
200- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
201- return
202- }
96+ client , mux := setupTest (t , "" )
20397
98+ mux .HandleFunc ("POST /" , func (rw http.ResponseWriter , _ * http.Request ) {
20499 rw .WriteHeader (http .StatusAccepted )
205100 })
206101
@@ -214,19 +109,9 @@ func TestAccountClient_PasswordReset(t *testing.T) {
214109}
215110
216111func TestAccountClient_ChangeEmail (t * testing.T ) {
217- mux := http .NewServeMux ()
218- server := httptest .NewServer (mux )
219- t .Cleanup (server .Close )
220-
221- client := New ("" , NewDefaultClientOptions ())
222- client .BaseURL = server .URL
223-
224- mux .HandleFunc ("/" , func (rw http.ResponseWriter , req * http.Request ) {
225- if req .Method != http .MethodPost {
226- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
227- return
228- }
112+ client , mux := setupTest (t , "" )
229113
114+ mux .HandleFunc ("POST /" , func (rw http.ResponseWriter , _ * http.Request ) {
230115 rw .WriteHeader (http .StatusAccepted )
231116 })
232117
@@ -235,19 +120,9 @@ func TestAccountClient_ChangeEmail(t *testing.T) {
235120}
236121
237122func TestAccountClient_Delete (t * testing.T ) {
238- mux := http .NewServeMux ()
239- server := httptest .NewServer (mux )
240- t .Cleanup (server .Close )
241-
242- client := New ("" , NewDefaultClientOptions ())
243- client .BaseURL = server .URL
244-
245- mux .HandleFunc ("/auth/account/delete/" , func (rw http.ResponseWriter , req * http.Request ) {
246- if req .Method != http .MethodPost {
247- http .Error (rw , "invalid method" , http .StatusMethodNotAllowed )
248- return
249- }
123+ client , mux := setupTest (t , "" )
250124
125+ mux .HandleFunc ("POST /auth/account/delete/" , func (rw http.ResponseWriter , _ * http.Request ) {
251126 rw .WriteHeader (http .StatusAccepted )
252127 })
253128
0 commit comments