47 lines
1.3 KiB
Go
47 lines
1.3 KiB
Go
package gapi
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/FernandoJVideira/simple_bank/internal/auth"
|
|
"github.com/FernandoJVideira/simple_bank/internal/config"
|
|
db "github.com/FernandoJVideira/simple_bank/internal/db/sqlc"
|
|
"github.com/FernandoJVideira/simple_bank/internal/service"
|
|
"github.com/FernandoJVideira/simple_bank/internal/worker"
|
|
_ "github.com/jackc/pgx/v5/stdlib"
|
|
"github.com/stretchr/testify/require"
|
|
"google.golang.org/grpc/metadata"
|
|
)
|
|
|
|
func newTestServer(t *testing.T, store db.Store, td worker.TaskDistributor, userService service.UserService, authService service.AuthService) *Server {
|
|
config := config.Config{
|
|
AuthTokenExp: time.Minute,
|
|
AllowedOrigins: []string{
|
|
"*",
|
|
},
|
|
}
|
|
|
|
tokenMaker, err := auth.NewPasetoMaker(config)
|
|
require.NoError(t, err)
|
|
|
|
server, err := NewServer(config, store, td, tokenMaker, userService, authService)
|
|
require.NoError(t, err)
|
|
|
|
return server
|
|
}
|
|
|
|
func newContextWithBearerToken(t *testing.T, tokenMaker auth.Maker, username string, role string, duration time.Duration) context.Context {
|
|
authToken, _, err := tokenMaker.CreateToken(username, role, duration)
|
|
require.NoError(t, err)
|
|
bearerToken := fmt.Sprintf("%s %s", authTypeBearer, authToken)
|
|
md := metadata.MD{
|
|
authHeaderKey: []string{
|
|
bearerToken,
|
|
},
|
|
}
|
|
return metadata.NewIncomingContext(context.Background(), md)
|
|
}
|