@@ -31,53 +31,71 @@ import (
3131func TestFetchEndpoints (t * testing.T ) {
3232 tests := []struct {
3333 name string
34- target string
3534 mockServer func (w http.ResponseWriter , r * http.Request )
35+ headers []string
3636 want []string
3737 }{
3838 {
39- name : "Valid response with routes" ,
39+ name : "Valid response with routes and header present " ,
4040 mockServer : func (w http.ResponseWriter , r * http.Request ) {
41+ if r .Header .Get ("X-Test" ) != "value" {
42+ w .WriteHeader (http .StatusForbidden )
43+ return
44+ }
4145 response := map [string ]interface {}{
4246 "routes" : map [string ]interface {}{
4347 "/wp/v2/posts" : nil ,
4448 "/wp/v2/comments" : nil ,
4549 "/wp/v2/categories" : nil ,
4650 },
4751 }
48- if err := json .NewEncoder (w ).Encode (response ); err != nil {
49- t .Errorf ("Failed to encode JSON response: %v" , err )
52+ _ = json .NewEncoder (w ).Encode (response )
53+ },
54+ headers : []string {"X-Test: value" },
55+ want : []string {"/wp/v2/posts" , "/wp/v2/comments" , "/wp/v2/categories" },
56+ },
57+ {
58+ name : "Valid response with routes but header missing" ,
59+ mockServer : func (w http.ResponseWriter , r * http.Request ) {
60+ if r .Header .Get ("X-Test" ) == "" {
61+ response := map [string ]interface {}{
62+ "routes" : map [string ]interface {}{
63+ "/wp/v2/posts" : nil ,
64+ },
65+ }
66+ _ = json .NewEncoder (w ).Encode (response )
67+ return
5068 }
69+ w .WriteHeader (http .StatusInternalServerError )
5170 },
52- want : []string {"/wp/v2/posts" , "/wp/v2/comments" , "/wp/v2/categories" },
71+ headers : nil ,
72+ want : []string {"/wp/v2/posts" },
5373 },
5474 {
5575 name : "Response without routes" ,
5676 mockServer : func (w http.ResponseWriter , r * http.Request ) {
57- response := map [string ]interface {}{
77+ _ = json . NewEncoder ( w ). Encode ( map [string ]interface {}{
5878 "data" : "No routes here" ,
59- }
60- if err := json .NewEncoder (w ).Encode (response ); err != nil {
61- t .Errorf ("Failed to encode JSON response: %v" , err )
62- }
79+ })
6380 },
64- want : []string {},
81+ headers : nil ,
82+ want : []string {},
6583 },
6684 {
6785 name : "Invalid JSON response" ,
6886 mockServer : func (w http.ResponseWriter , r * http.Request ) {
69- if _ , err := w .Write ([]byte ("{invalid-json" )); err != nil {
70- t .Errorf ("Failed to write invalid JSON: %v" , err )
71- }
87+ _ , _ = w .Write ([]byte ("{invalid-json" ))
7288 },
73- want : []string {},
89+ headers : nil ,
90+ want : []string {},
7491 },
7592 {
7693 name : "HTTP error response" ,
7794 mockServer : func (w http.ResponseWriter , r * http.Request ) {
7895 w .WriteHeader (http .StatusInternalServerError )
7996 },
80- want : []string {},
97+ headers : nil ,
98+ want : []string {},
8199 },
82100 }
83101
@@ -86,7 +104,7 @@ func TestFetchEndpoints(t *testing.T) {
86104 server := httptest .NewServer (http .HandlerFunc (tt .mockServer ))
87105 defer server .Close ()
88106
89- got := FetchEndpoints (server .URL )
107+ got := FetchEndpoints (server .URL , tt . headers )
90108
91109 sort .Strings (got )
92110 sort .Strings (tt .want )
0 commit comments