github.com/keybase/client/go@v0.0.0-20240309051027-028f7c731f8b/service/apiserver_test.go (about)

     1  package service
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/keybase/client/go/kbtest"
     7  	"github.com/keybase/client/go/libkb"
     8  	keybase1 "github.com/keybase/client/go/protocol/keybase1"
     9  	jsonw "github.com/keybase/go-jsonw"
    10  )
    11  
    12  func TestAPIServerGet(t *testing.T) {
    13  	tc := libkb.SetupTest(t, "apiserver", 2)
    14  	defer tc.Cleanup()
    15  	tc.G.SetService()
    16  
    17  	_, err := kbtest.CreateAndSignupFakeUser("apivr", tc.G)
    18  	if err != nil {
    19  		t.Fatal(err)
    20  	}
    21  
    22  	harg := []keybase1.StringKVPair{
    23  		{Key: "username", Value: "t_alice"},
    24  		{Key: "fields", Value: "basics"},
    25  	}
    26  
    27  	arg := keybase1.GetArg{
    28  		Endpoint: "user/lookup",
    29  		Args:     harg,
    30  	}
    31  	mctx := libkb.NewMetaContextForTest(tc)
    32  	handler := NewAPIServerHandler(nil, tc.G)
    33  	res, err := handler.doGet(mctx, arg, false)
    34  	if err != nil {
    35  		t.Fatal(err)
    36  	}
    37  
    38  	jw, err := jsonw.Unmarshal([]byte(res.Body))
    39  	if err != nil {
    40  		t.Fatal(err)
    41  	}
    42  
    43  	usernamew := jw.AtKey("them").AtKey("basics").AtKey("username")
    44  	username, err := usernamew.GetString()
    45  	if err != nil {
    46  		t.Fatal(err)
    47  	}
    48  
    49  	if username != "t_alice" {
    50  		t.Fatalf("wrong username returned: %s != %s", username, "t_alice")
    51  	}
    52  }
    53  
    54  func TestAPIServerPost(t *testing.T) {
    55  
    56  	tc := libkb.SetupTest(t, "apiserver", 2)
    57  	defer tc.Cleanup()
    58  	tc.G.SetService()
    59  
    60  	_, err := kbtest.CreateAndSignupFakeUser("apivr", tc.G)
    61  	if err != nil {
    62  		t.Fatal(err)
    63  	}
    64  
    65  	harg := []keybase1.StringKVPair{
    66  		{Key: "email_or_username", Value: "t_alice"},
    67  	}
    68  
    69  	arg := keybase1.PostArg{
    70  		Endpoint: "getsalt",
    71  		Args:     harg,
    72  	}
    73  
    74  	handler := NewAPIServerHandler(nil, tc.G)
    75  	mctx := libkb.NewMetaContextForTest(tc)
    76  	res, err := handler.doPost(mctx, arg)
    77  	if err != nil {
    78  		t.Fatal(err)
    79  	}
    80  
    81  	jw, err := jsonw.Unmarshal([]byte(res.Body))
    82  	if err != nil {
    83  		t.Fatal(err)
    84  	}
    85  
    86  	namew := jw.AtKey("status").AtKey("name")
    87  	name, err := namew.GetString()
    88  	if err != nil {
    89  		t.Fatal(err)
    90  	}
    91  
    92  	if name != "OK" {
    93  		t.Fatalf("wrong name returned: %s != %s", name, "OK")
    94  	}
    95  }
    96  
    97  func TestAPIServerPostJSON(t *testing.T) {
    98  
    99  	tc := libkb.SetupTest(t, "apiserver", 2)
   100  	defer tc.Cleanup()
   101  	tc.G.SetService()
   102  
   103  	_, err := kbtest.CreateAndSignupFakeUser("apivr", tc.G)
   104  	if err != nil {
   105  		t.Fatal(err)
   106  	}
   107  
   108  	jsonPayload := []keybase1.StringKVPair{
   109  		{Key: "sigs", Value: "[]"},
   110  	}
   111  
   112  	arg := keybase1.PostJSONArg{
   113  		Endpoint:    "key/multi",
   114  		JSONPayload: jsonPayload,
   115  	}
   116  
   117  	handler := NewAPIServerHandler(nil, tc.G)
   118  	res, err := handler.doPostJSON(libkb.NewMetaContextForTest(tc), arg)
   119  	if err != nil {
   120  		t.Fatal(err)
   121  	}
   122  
   123  	jw, err := jsonw.Unmarshal([]byte(res.Body))
   124  	if err != nil {
   125  		t.Fatal(err)
   126  	}
   127  
   128  	namew := jw.AtKey("status").AtKey("name")
   129  	name, err := namew.GetString()
   130  	if err != nil {
   131  		t.Fatal(err)
   132  	}
   133  
   134  	if name != "OK" {
   135  		t.Fatalf("wrong name returned: %s != %s", name, "OK")
   136  	}
   137  }