api_test.go 1.99 KB
Newer Older
1
package api
2 3 4 5 6 7

import (
	"net/http"
	"net/http/httptest"
	"testing"

Will Cory's avatar
Will Cory committed
8 9
	"github.com/ethereum-optimism/optimism/indexer/database"
	"github.com/ethereum/go-ethereum/common"
10 11 12
	"github.com/stretchr/testify/assert"
)

Will Cory's avatar
Will Cory committed
13 14
// MockBridgeView mocks the BridgeView interface
type MockBridgeView struct{}
15

Will Cory's avatar
Will Cory committed
16 17 18
// DepositsByAddress mocks returning deposits by an address
func (mbv *MockBridgeView) DepositsByAddress(address common.Address) ([]*database.DepositWithTransactionHash, error) {
	return []*database.DepositWithTransactionHash{
19
		{
Will Cory's avatar
Will Cory committed
20 21 22 23 24 25 26
			Deposit: database.Deposit{
				GUID:                 "mockGUID1",
				InitiatedL1EventGUID: "mockEventGUID1",
				Tx:                   database.Transaction{},
				TokenPair:            database.TokenPair{},
			},
			L1TransactionHash: common.HexToHash("0x123"),
27
		},
Will Cory's avatar
Will Cory committed
28 29
	}, nil
}
30

Will Cory's avatar
Will Cory committed
31 32 33
// WithdrawalsByAddress mocks returning withdrawals by an address
func (mbv *MockBridgeView) WithdrawalsByAddress(address common.Address) ([]*database.WithdrawalWithTransactionHashes, error) {
	return []*database.WithdrawalWithTransactionHashes{
34
		{
Will Cory's avatar
Will Cory committed
35 36 37 38 39 40 41 42
			Withdrawal: database.Withdrawal{
				GUID:                 "mockGUID2",
				InitiatedL2EventGUID: "mockEventGUID2",
				WithdrawalHash:       common.HexToHash("0x456"),
				Tx:                   database.Transaction{},
				TokenPair:            database.TokenPair{},
			},
			L2TransactionHash: common.HexToHash("0x789"),
43
		},
Will Cory's avatar
Will Cory committed
44 45
	}, nil
}
46

Will Cory's avatar
Will Cory committed
47 48 49 50
func TestDepositsHandler(t *testing.T) {
	api := NewApi(&MockBridgeView{})
	request, err := http.NewRequest("GET", "/api/v0/deposits/0x123", nil)
	assert.Nil(t, err)
51

Will Cory's avatar
Will Cory committed
52 53
	responseRecorder := httptest.NewRecorder()
	api.Router.ServeHTTP(responseRecorder, request)
54

Will Cory's avatar
Will Cory committed
55 56
	assert.Equal(t, http.StatusOK, responseRecorder.Code)
}
57

Will Cory's avatar
Will Cory committed
58 59 60 61
func TestWithdrawalsHandler(t *testing.T) {
	api := NewApi(&MockBridgeView{})
	request, err := http.NewRequest("GET", "/api/v0/withdrawals/0x123", nil)
	assert.Nil(t, err)
62

Will Cory's avatar
Will Cory committed
63 64
	responseRecorder := httptest.NewRecorder()
	api.Router.ServeHTTP(responseRecorder, request)
65

Will Cory's avatar
Will Cory committed
66
	assert.Equal(t, http.StatusOK, responseRecorder.Code)
67
}