This commit is contained in:
Владимир Фёдоров 2026-03-02 00:31:41 +07:00
parent 18acd58ff3
commit cf47f1979f
10 changed files with 1 additions and 243 deletions

1
.gitignore vendored
View File

@ -29,3 +29,4 @@ store.db
cmd/text_to_story/*.txt cmd/text_to_story/*.txt
cmd/text_to_story/*.json cmd/text_to_story/*.json
data

BIN
data/.DS_Store vendored

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@ -1,33 +0,0 @@
package tests
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestGetApplication(t *testing.T) {
defer deleteTeams(t)
client, close := getClient()
defer close()
createTeamResp, err := createTeam(client, "Тестовая команда")
assert.Nil(t, err, "запрос отправлен успешно")
team := createTeamResp.Teams[0]
addAction(t, client, team.Name, team.Password, "Т-1")
getTeamsResp, err := getTeams(client)
assert.Nil(t, err, "запрос отправлен успешно")
applications := getTeamsResp.Teams[0].Applications
assert.Equal(t, 1, len(applications), "выдать 1 приложение")
addAction(t, client, team.Name, team.Password, "Т-1")
getTeamsResp, err = getTeams(client)
assert.Nil(t, err, "запрос отправлен успешно")
applications = getTeamsResp.Teams[0].Applications
assert.Equal(t, 1, len(applications), "выдать 1 приложение")
}

View File

@ -1,88 +0,0 @@
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, "запрос отправлен успешно")
}
func getGraph(client pb.EveningDetectiveClient) (*pb.GetGraphRsp, error) {
ctx, cancel := getContext()
defer cancel()
req := &pb.GetGraphReq{}
return client.GetGraph(ctx, req)
}

View File

@ -1,23 +0,0 @@
package tests
import (
"log"
"testing"
pb "evening_detective/proto"
)
func TestPing(t *testing.T) {
client, close := getClient()
defer close()
ctx, cancel := getContext()
defer cancel()
req := &pb.PingReq{}
_, err := client.Ping(ctx, req)
if err != nil {
log.Fatalf("Ошибка выполнения запроса: %v", err)
}
}

View File

@ -1,18 +0,0 @@
package tests
import (
"testing"
"github.com/stretchr/testify/assert"
)
func Test_StoryStatistics(t *testing.T) {
client, close := getClient()
defer close()
getGraphResp, err := getGraph(client)
assert.Nil(t, err, "запрос отправлен успешно")
assert.Equal(t, 5, int(getGraphResp.CountNodes))
assert.Equal(t, 3, int(getGraphResp.CountEdges))
}

View File

@ -1 +0,0 @@
{"places":[{"code":"Т-1","name":"Точка 1","text":"Текст точки([Т-2])([Т-3])","applications":[{"name":"application 1"}]},{"code":"Т-2","name":"Точка 2","text":"Текст точки 2([Т-4])","applications":[{"name":"application 2"}]},{"code":"Т-3","name":"Точка 3","text":"Текст точки 3","applications":[{"name":"application 3"}]},{"code":"Т-4","name":"Точка 4","text":"Текст точки 4","applications":[{"name":"application 4"}]},{"code":"Т-5","name":"Точка 5","text":"Текст точки 5","applications":[{"name":"application 5"}]}]}

View File

@ -1,79 +0,0 @@
package tests
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestCreateTeam(t *testing.T) {
defer deleteTeams(t)
client, close := getClient()
defer close()
createTeamResp, err := createTeam(client, "Тестовая команда")
assert.Nil(t, err, "запрос отправлен успешно")
assert.Equal(t, len(createTeamResp.Teams), 1, "количество команд равно 1")
assert.Equal(t, createTeamResp.Teams[0].Name, "Тестовая команда")
getTeamsResp, err := getTeams(client)
assert.Nil(t, err, "запрос отправлен успешно")
assert.Equal(t, len(getTeamsResp.Teams), 1, "количество команд равно 1")
assert.Equal(t, getTeamsResp.Teams[0].Name, "Тестовая команда")
}
func TestCreateTeamWithEmptyName(t *testing.T) {
defer deleteTeams(t)
client, close := getClient()
defer close()
_, err := createTeam(client, "")
assert.NotNil(t, err, "запрос не удался")
}
func TestCreateTwoTeam(t *testing.T) {
defer deleteTeams(t)
client, close := getClient()
defer close()
_, err := createTeam(client, "Тестовая команда 1")
assert.Nil(t, err, "запрос отправлен успешно")
_, err = createTeam(client, "Тестовая команда 2")
assert.Nil(t, err, "запрос отправлен успешно")
getTeamsResp, err := getTeams(client)
assert.Nil(t, err, "запрос отправлен успешно")
assert.Equal(t, len(getTeamsResp.Teams), 2, "количество команд равно 2")
assert.Equal(t, getTeamsResp.Teams[0].Name, "Тестовая команда 1")
assert.Equal(t, getTeamsResp.Teams[1].Name, "Тестовая команда 2")
}
func TestCreateTwoEqTeam(t *testing.T) {
defer deleteTeams(t)
client, close := getClient()
defer close()
_, err := createTeam(client, "Тестовая команда")
assert.Nil(t, err, "запрос отправлен успешно")
_, err = createTeam(client, "Тестовая команда")
assert.NotNil(t, err, "запрос не удался")
}
func TestCreateTwoBadTeam(t *testing.T) {
defer deleteTeams(t)
client, close := getClient()
defer close()
_, err := createTeam(client, "Тестовая команда")
assert.Nil(t, err, "запрос отправлен успешно")
_, err = createTeam(client, "Тестовая команда ")
assert.NotNil(t, err, "запрос не удался")
}