From 4a6e4ebe55ae33d623c34d01abd9a2ac283795d9 Mon Sep 17 00:00:00 2001 From: Carlosokumu Date: Thu, 12 Sep 2024 15:49:48 +0300 Subject: [PATCH] add api calls tests --- .../handlers/server/accountservice_test.go | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 internal/handlers/server/accountservice_test.go diff --git a/internal/handlers/server/accountservice_test.go b/internal/handlers/server/accountservice_test.go new file mode 100644 index 0000000..6421249 --- /dev/null +++ b/internal/handlers/server/accountservice_test.go @@ -0,0 +1,126 @@ +package server + +import ( + "testing" + + "github.com/alecthomas/assert/v2" + "gopkg.in/dnaeon/go-vcr.v4/pkg/recorder" +) + +func TestCheckBalance(t *testing.T) { + r, err := recorder.New("custodial/balance") + if err != nil { + t.Fatal(err) + } + defer r.Stop() + + client := r.GetDefaultClient() + + as := AccountService{ + Client: client, + } + tests := []struct { + name string + balance string + publicKey string + }{ + { + name: "Test check balance with correct public key", + publicKey: "0x216a4A64E1e699F9d65Dd9CbD0058dAB21DeF002", + balance: "3.06000000003 CELO", + }, + { + name: "Test check balance with public key that doesn't exist in the custodial system", + balance: "", + publicKey: "0x216a4A64E1e699F9d65Dd9CbD0058dAB21DeF00", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + balance, err := as.CheckBalance(tt.publicKey) + if err != nil { + t.Fatalf("Failed to get balance with error %s", err) + } + if err != nil { + + return + } + assert.NoError(t, err) + assert.Equal(t, balance, tt.balance, "Expected balance and actual balance should be equal") + + }) + } + +} + +func TestCheckAccountStatus(t *testing.T) { + r, err := recorder.New("custodial/status") + if err != nil { + t.Fatal(err) + } + defer r.Stop() + + client := r.GetDefaultClient() + + as := AccountService{ + Client: client, + } + tests := []struct { + name string + status string + trackingId string + }{ + { + name: "Test check status with tracking id that exists in the custodial system", + trackingId: "bb23945b-65cd-4110-ac2e-a5df40572e18", + status: "SUCCESS", + }, + { + name: "Test check status with tracking id that doesn't exist in the custodial system", + status: "", + trackingId: "bb23945b-65cd-4110-ac2e-a5df40572e1", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + status, err := as.CheckAccountStatus(tt.trackingId) + if err != nil { + t.Fatalf("Failed to account status with error %s", err) + } + if err != nil { + return + } + assert.NoError(t, err) + assert.Equal(t, status, tt.status, "Expected status and actual status should be equal") + + }) + } + +} + +func TestCreateAccount(t *testing.T) { + r, err := recorder.New("custodial/create") + if err != nil { + t.Fatal(err) + } + defer r.Stop() + + client := r.GetDefaultClient() + + as := AccountService{ + Client: client, + } + accountRes, err := as.CreateAccount() + + if err != nil { + t.Fatalf("Failed to create an account with error %s", err) + } + if err != nil { + return + } + assert.NoError(t, err) + assert.Equal(t, accountRes.Ok, true, "account response status is true") + +}