Skip to content

Commit

Permalink
test: added wallet, data model, account unit tests
Browse files Browse the repository at this point in the history
  • Loading branch information
Siddharth9890 committed Oct 16, 2024
1 parent 6f648a1 commit a0e52fc
Show file tree
Hide file tree
Showing 4 changed files with 237 additions and 0 deletions.
60 changes: 60 additions & 0 deletions pkg/accounts/accounts_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package accounts_test

import (
"errors"
"net/http"
"testing"

Expand Down Expand Up @@ -72,6 +73,28 @@ func TestAccountsImpl(t *testing.T) {
assert.Empty(t, token)
})

t.Run("TestCreateAccountHTTPRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error (e.g., network error)
httpmock.RegisterResponder("POST", common.CreateAccount, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
accountDetails := common.AccountCreateRequest{
Signature: "test",
WalletAddress: "test",
Message: "test",
}
token, err := accountImpl.Create(accountDetails)

// Assertions
assert.Error(t, err)
assert.Empty(t, token)
})

t.Run("TestGetMe", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand Down Expand Up @@ -109,6 +132,23 @@ func TestAccountsImpl(t *testing.T) {
assert.Empty(t, myAccount)
})

t.Run("TestGetMeHTTPRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error (e.g., network error)
httpmock.RegisterResponder("POST", common.GetMyAccount, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
myAccount, err := accountImpl.GetMe()

// Assertions
assert.Error(t, err)
assert.Empty(t, myAccount)
})

t.Run("TestUpdateMe", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand Down Expand Up @@ -151,4 +191,24 @@ func TestAccountsImpl(t *testing.T) {
assert.Error(t, err)
assert.Empty(t, myAccount)
})

t.Run("TestUpdateMeHTTPRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error (e.g., network error)
httpmock.RegisterResponder("PATCH", common.GetMyAccount, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
updateDetails := common.AccountUpdateRequest{
ProfilePicture: "test",
}
myAccount, err := accountImpl.UpdateMe(updateDetails)

// Assertions
assert.Error(t, err)
assert.Empty(t, myAccount)
})
}
35 changes: 35 additions & 0 deletions pkg/accounts/wallet_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package accounts_test

import (
"errors"
"net/http"
"testing"

Expand Down Expand Up @@ -65,6 +66,23 @@ func TestWalletImpl(t *testing.T) {
assert.Empty(t, result.WalletAddresses)
})

t.Run("TestAddWalletHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error (e.g., network error)
httpmock.RegisterResponder("POST", common.AddWallet, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
result, err := walletImpl.Add("0xTestAddress")

// Assertions
assert.Error(t, err)
assert.Empty(t, result.WalletAddresses)
})

t.Run("TestRemoveWallet", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand Down Expand Up @@ -104,4 +122,21 @@ func TestWalletImpl(t *testing.T) {
assert.Error(t, err)
assert.Empty(t, result.WalletAddresses)
})

t.Run("TestRemoveWalletHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error (e.g., network error)
httpmock.RegisterResponder("DELETE", common.RemoveWallet, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
result, err := walletImpl.Remove("0xTestAddress")

// Assertions
assert.Error(t, err)
assert.Empty(t, result.WalletAddresses)
})
}
46 changes: 46 additions & 0 deletions pkg/auth/auth_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package auth_test

import (
"errors"
"net/http"
"testing"

Expand Down Expand Up @@ -62,6 +63,21 @@ func TestAuthSuite(t *testing.T) {
assert.Empty(t, token)
})

t.Run("TestLoginHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Register an error responder to simulate HTTP request error
httpmock.RegisterResponder("POST", common.AuthenticateAccount, httpmock.NewErrorResponder(errors.New("http request error")))

// Test
token, err := authImpl.Login("test-message", "test-signature", "test-wallet")

// Assertions
assert.Error(t, err)
assert.Empty(t, token)
})

t.Run("TestGetMessage", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand Down Expand Up @@ -99,6 +115,21 @@ func TestAuthSuite(t *testing.T) {
assert.Empty(t, message)
})

t.Run("TestGetMessageHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Register an error responder to simulate HTTP request error
httpmock.RegisterResponder("GET", common.GenerateSignMessage, httpmock.NewErrorResponder(errors.New("http request error")))

// Test
message, err := authImpl.GetMessage()

// Assertions
assert.Error(t, err)
assert.Empty(t, message)
})

t.Run("TestGetRefreshToken", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand Down Expand Up @@ -135,4 +166,19 @@ func TestAuthSuite(t *testing.T) {
assert.Error(t, err)
assert.Empty(t, token)
})

t.Run("TestGetRefreshTokenHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Register an error responder to simulate HTTP request error
httpmock.RegisterResponder("GET", common.RefreshToken, httpmock.NewErrorResponder(errors.New("http request error")))

// Test
token, err := authImpl.GetRefreshToken()

// Assertions
assert.Error(t, err)
assert.Empty(t, token)
})
}
96 changes: 96 additions & 0 deletions pkg/data_models/data_model_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package datamodels_test

import (
"errors"
"net/http"
"testing"

Expand Down Expand Up @@ -90,6 +91,24 @@ func TestDataModelSuite(t *testing.T) {

})

t.Run("TestGetAllHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error (e.g., network error)
httpmock.RegisterResponder("GET", common.GetDataModels, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
page, pageSize := 1, 10
response, err := dataModelImpl.GetAll(page, pageSize)

// Assertions
assert.Error(t, err)
assert.Empty(t, response)
})

t.Run("TestGetMy", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand Down Expand Up @@ -150,6 +169,24 @@ func TestDataModelSuite(t *testing.T) {
assert.Equal(t, 2, result.Meta.TotalItems)
})

t.Run("TestGetMyHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error
httpmock.RegisterResponder("GET", common.GetDataModelsByUser, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
page, pageSize := 1, 10
result, err := dataModelImpl.GetMy(page, pageSize)

// Assertions
assert.Error(t, err)
assert.Empty(t, result)
})

t.Run("TestGetById", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand Down Expand Up @@ -186,6 +223,24 @@ func TestDataModelSuite(t *testing.T) {
assert.Equal(t, "Data Model 1", result.Title)
})

t.Run("TestGetByIdHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error
httpmock.RegisterResponder("GET", "/data-models/1", func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
id := int64(1)
result, err := dataModelImpl.GetById(id)

// Assertions
assert.Error(t, err)
assert.Empty(t, result)
})

t.Run("TestCreate", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand All @@ -210,6 +265,26 @@ func TestDataModelSuite(t *testing.T) {
assert.Equal(t, int(2), result.Id)
})

t.Run("TestCreateHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error
httpmock.RegisterResponder("POST", common.CreateDataModel, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
dataModelInput := common.DataModelRequest{
Title: "NewModel",
}
result, err := dataModelImpl.Create(dataModelInput)

// Assertions
assert.Error(t, err)
assert.Empty(t, result)
})

t.Run("TestUpdate", func(t *testing.T) {
// Reset mock
httpmock.Reset()
Expand All @@ -234,4 +309,25 @@ func TestDataModelSuite(t *testing.T) {
assert.NoError(t, err)
assert.Equal(t, int(2), result.Id)
})

t.Run("TestUpdateHttpRequestError", func(t *testing.T) {
// Reset mock
httpmock.Reset()

// Simulate a client-side error
httpmock.RegisterResponder("PUT", common.UpdateDataModel, func(req *http.Request) (*http.Response, error) {
return nil, errors.New("client-side error")
})

// Test
id := int64(2)
dataModelInput := common.DataModelRequest{
Title: "UpdatedModel",
}
result, err := dataModelImpl.Update(id, dataModelInput)

// Assertions
assert.Error(t, err)
assert.Empty(t, result)
})
}

0 comments on commit a0e52fc

Please sign in to comment.