@@ -20,6 +20,7 @@ import (
20
20
"encoding/json"
21
21
"io"
22
22
"net/http"
23
+ "testing"
23
24
"time"
24
25
25
26
"github.com/lukewhrit/spacebin/internal/database"
@@ -81,7 +82,7 @@ func (s *FetchDocumentSuite) TestFetchRawDocument() {
81
82
res := executeRequest (req , s .srv )
82
83
83
84
require .Equal (s .T (), http .StatusOK , res .Result ().StatusCode )
84
- require .Equal (s .T (), "text/plain; charset=utf-8 " , res .Result ().Header .Get ("Content-Type" ))
85
+ require .Equal (s .T (), "text/plain" , res .Result ().Header .Get ("Content-Type" ))
85
86
require .Equal (s .T (), "test" , res .Body .String ())
86
87
}
87
88
@@ -98,3 +99,22 @@ func (s *FetchDocumentSuite) TestFetchNotFoundDocument() {
98
99
99
100
require .Equal (s .T (), "sql: no rows in result set" , body .Error )
100
101
}
102
+
103
+ // TestFetchBadIDDocument tests fetching a document with an invalid ID
104
+ func (s * FetchDocumentSuite ) TestFetchBadIDDocument () {
105
+ req , _ := http .NewRequest (http .MethodGet , "/api/1234" , nil )
106
+ res := executeRequest (req , s .srv )
107
+
108
+ require .Equal (s .T (), http .StatusBadRequest , res .Result ().StatusCode )
109
+ require .Equal (s .T (), "application/json" , res .Result ().Header .Get ("Content-Type" ))
110
+
111
+ x , _ := io .ReadAll (res .Result ().Body )
112
+ var body DocumentResponse
113
+ json .Unmarshal (x , & body )
114
+
115
+ require .Equal (s .T (), "id is of length 4, should be 8" , body .Error )
116
+ }
117
+
118
+ func TestFetchDocumentSuite (t * testing.T ) {
119
+ suite .Run (t , new (FetchDocumentSuite ))
120
+ }
0 commit comments