services/rfq/api/client/client_test.go
package client_test
import (
"github.com/synapsecns/sanguine/services/rfq/api/model"
)
// TODO: @aurelius tese tests make a lot less sesnes w/ a composite index
func (c *ClientSuite) TestPutAndGetQuote() {
req := model.PutRelayerQuoteRequest{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
}
err := c.client.PutQuote(c.GetTestContext(), &req)
c.Require().NoError(err)
quotes, err := c.client.GetAllQuotes(c.GetTestContext())
c.Require().NoError(err)
expectedResp := model.GetQuoteResponse{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
RelayerAddr: c.testWallet.Address().String(),
UpdatedAt: quotes[0].UpdatedAt,
}
c.Len(quotes, 1)
c.Equal(expectedResp, *quotes[0])
}
func (c *ClientSuite) TestPutAndGetBulkQuotes() {
req := model.PutBulkQuotesRequest{
Quotes: []model.PutRelayerQuoteRequest{
{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
},
{
OriginChainID: 42161,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 1,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
},
},
}
err := c.client.PutBulkQuotes(c.GetTestContext(), &req)
c.Require().NoError(err)
quotes, err := c.client.GetAllQuotes(c.GetTestContext())
c.Require().NoError(err)
expectedResp := []model.GetQuoteResponse{
{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
RelayerAddr: c.testWallet.Address().String(),
UpdatedAt: quotes[0].UpdatedAt,
},
{
OriginChainID: 42161,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 1,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
RelayerAddr: c.testWallet.Address().String(),
UpdatedAt: quotes[0].UpdatedAt,
},
}
c.Len(quotes, 2)
c.Equal(expectedResp[0], *quotes[0])
c.Equal(expectedResp[1], *quotes[1])
}
func (c *ClientSuite) TestGetSpecificQuote() {
req := model.PutRelayerQuoteRequest{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
}
err := c.client.PutQuote(c.GetTestContext(), &req)
c.Require().NoError(err)
quotes, err := c.client.GetSpecificQuote(c.GetTestContext(), &model.GetQuoteSpecificRequest{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
})
c.Require().NoError(err)
c.Len(quotes, 1)
expectedResp := model.GetQuoteResponse{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
RelayerAddr: c.testWallet.Address().String(),
UpdatedAt: quotes[0].UpdatedAt,
}
c.Equal(expectedResp, *quotes[0])
}
func (c *ClientSuite) TestGetQuoteByRelayerAddress() {
req := model.PutRelayerQuoteRequest{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
}
err := c.client.PutQuote(c.GetTestContext(), &req)
c.Require().NoError(err)
relayerAddr := c.testWallet.Address().Hex()
quotes, err := c.client.GetQuoteByRelayerAddress(c.GetTestContext(), relayerAddr)
c.Require().NoError(err)
c.Len(quotes, 1)
expectedResp := model.GetQuoteResponse{
OriginChainID: 1,
OriginTokenAddr: "0xOriginTokenAddr",
DestChainID: 42161,
DestTokenAddr: "0xDestTokenAddr",
DestAmount: "100",
MaxOriginAmount: "200",
FixedFee: "10",
RelayerAddr: c.testWallet.Address().String(),
UpdatedAt: quotes[0].UpdatedAt,
}
c.Equal(expectedResp, *quotes[0])
}