generated from VLADIMIR/template
82 lines
1.9 KiB
Go
82 lines
1.9 KiB
Go
package tests
|
||
|
||
import (
|
||
"context"
|
||
"encoding/base64"
|
||
"log"
|
||
"testing"
|
||
"time"
|
||
|
||
"evening_detective/internal/config"
|
||
"evening_detective/internal/services"
|
||
pb "evening_detective/proto"
|
||
|
||
"github.com/stretchr/testify/assert"
|
||
"google.golang.org/grpc"
|
||
"google.golang.org/grpc/metadata"
|
||
)
|
||
|
||
func getClient() (pb.EveningDetectiveClient, func() error) {
|
||
conn, err := grpc.Dial("localhost:8080", grpc.WithInsecure())
|
||
if err != nil {
|
||
log.Fatalf("Не удалось подключиться к серверу: %v", err)
|
||
}
|
||
return pb.NewEveningDetectiveClient(conn), conn.Close
|
||
}
|
||
|
||
func getContext() (context.Context, context.CancelFunc) {
|
||
return context.WithTimeout(context.Background(), time.Second)
|
||
}
|
||
|
||
func deleteTeams(t *testing.T) {
|
||
dbFilepath := config.GetDBFilepath()
|
||
repository, err := services.NewRepository(dbFilepath)
|
||
if err != nil {
|
||
assert.Nil(t, err, "подключение к базе")
|
||
}
|
||
defer repository.Close()
|
||
|
||
err = repository.DeleteAllTeams(context.Background())
|
||
assert.Nil(t, err, "команды удалены")
|
||
}
|
||
|
||
func createTeam(client pb.EveningDetectiveClient, name string) (*pb.AddTeamsRsp, error) {
|
||
ctx, cancel := getContext()
|
||
defer cancel()
|
||
req := &pb.AddTeamsReq{
|
||
Teams: []*pb.Team{
|
||
{Name: name},
|
||
},
|
||
}
|
||
return client.AddTeams(ctx, req)
|
||
}
|
||
|
||
func getTeams(client pb.EveningDetectiveClient) (*pb.GetTeamsRsp, error) {
|
||
ctx, cancel := getContext()
|
||
defer cancel()
|
||
req := &pb.GetTeamsReq{}
|
||
return client.GetTeams(ctx, req)
|
||
}
|
||
|
||
func addAction(
|
||
t *testing.T,
|
||
client pb.EveningDetectiveClient,
|
||
name string,
|
||
password string,
|
||
place string,
|
||
) {
|
||
ctx, cancel := getContext()
|
||
defer cancel()
|
||
md := metadata.Pairs(
|
||
"team-id", base64.StdEncoding.EncodeToString([]byte(name)),
|
||
"password", password,
|
||
)
|
||
ctx = metadata.NewOutgoingContext(ctx, md)
|
||
|
||
req := &pb.AddActionReq{
|
||
Place: place,
|
||
}
|
||
_, err := client.AddAction(ctx, req)
|
||
assert.Nil(t, err, "запрос отправлен успешно")
|
||
}
|