All checks were successful
Deploy Smart Search Backend Test / deploy (push) Successful in 1m40s
151 lines
4.0 KiB
Go
151 lines
4.0 KiB
Go
package tests
|
|
|
|
import (
|
|
"context"
|
|
|
|
authpb "git.techease.ru/Smart-search/smart-search-back/pkg/pb/auth"
|
|
requestpb "git.techease.ru/Smart-search/smart-search-back/pkg/pb/request"
|
|
supplierpb "git.techease.ru/Smart-search/smart-search-back/pkg/pb/supplier"
|
|
"google.golang.org/grpc/codes"
|
|
"google.golang.org/grpc/status"
|
|
)
|
|
|
|
func (s *IntegrationSuite) TestSupplierHandler_ExportExcelWithNonExistentRequest() {
|
|
req := &supplierpb.ExportExcelRequest{
|
|
RequestId: "999999",
|
|
UserId: 1,
|
|
}
|
|
|
|
resp, err := s.supplierClient.ExportExcel(context.Background(), req)
|
|
|
|
s.Error(err)
|
|
s.Nil(resp)
|
|
|
|
st, ok := status.FromError(err)
|
|
s.True(ok)
|
|
s.Contains([]codes.Code{codes.NotFound, codes.Internal, codes.Unknown, codes.InvalidArgument}, st.Code())
|
|
}
|
|
|
|
func (s *IntegrationSuite) TestSupplierHandler_ExportExcelWithInvalidUser() {
|
|
req := &supplierpb.ExportExcelRequest{
|
|
RequestId: "1",
|
|
UserId: 999999,
|
|
}
|
|
|
|
resp, err := s.supplierClient.ExportExcel(context.Background(), req)
|
|
|
|
if err != nil {
|
|
st, ok := status.FromError(err)
|
|
s.True(ok)
|
|
s.Contains([]codes.Code{codes.NotFound, codes.PermissionDenied, codes.Internal, codes.Unknown, codes.InvalidArgument}, st.Code())
|
|
return
|
|
}
|
|
|
|
s.NotNil(resp)
|
|
}
|
|
|
|
func (s *IntegrationSuite) TestSupplierHandler_ExportExcelWithValidRequest() {
|
|
ctx := context.Background()
|
|
|
|
loginReq := &authpb.LoginRequest{
|
|
Email: "test@example.com",
|
|
Password: "testpassword",
|
|
Ip: "127.0.0.1",
|
|
UserAgent: "integration-test",
|
|
}
|
|
|
|
loginResp, err := s.authClient.Login(ctx, loginReq)
|
|
s.NoError(err)
|
|
|
|
validateReq := &authpb.ValidateRequest{
|
|
AccessToken: loginResp.AccessToken,
|
|
}
|
|
|
|
validateResp, err := s.authClient.Validate(ctx, validateReq)
|
|
s.NoError(err)
|
|
|
|
createReq := &requestpb.CreateTZRequest{
|
|
UserId: validateResp.UserId,
|
|
RequestTxt: "Нужны поставщики кирпича",
|
|
}
|
|
|
|
createResp, err := s.requestClient.CreateTZ(ctx, createReq)
|
|
if err != nil {
|
|
s.T().Skip("Cannot test ExportExcel without CreateTZ")
|
|
return
|
|
}
|
|
|
|
exportReq := &supplierpb.ExportExcelRequest{
|
|
RequestId: createResp.RequestId,
|
|
UserId: validateResp.UserId,
|
|
}
|
|
|
|
exportResp, err := s.supplierClient.ExportExcel(ctx, exportReq)
|
|
|
|
if err != nil {
|
|
st, ok := status.FromError(err)
|
|
s.True(ok)
|
|
s.Contains([]codes.Code{codes.NotFound, codes.Internal}, st.Code())
|
|
return
|
|
}
|
|
|
|
s.NotNil(exportResp)
|
|
s.NotEmpty(exportResp.FileName)
|
|
s.Equal("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", exportResp.MimeType)
|
|
}
|
|
|
|
func (s *IntegrationSuite) TestSupplierHandler_ExportExcelWithSuppliers() {
|
|
ctx := context.Background()
|
|
|
|
loginReq := &authpb.LoginRequest{
|
|
Email: "test@example.com",
|
|
Password: "testpassword",
|
|
Ip: "127.0.0.1",
|
|
UserAgent: "integration-test",
|
|
}
|
|
|
|
loginResp, err := s.authClient.Login(ctx, loginReq)
|
|
s.NoError(err)
|
|
|
|
validateReq := &authpb.ValidateRequest{
|
|
AccessToken: loginResp.AccessToken,
|
|
}
|
|
|
|
validateResp, err := s.authClient.Validate(ctx, validateReq)
|
|
s.NoError(err)
|
|
userID := validateResp.UserId
|
|
|
|
createReq := &requestpb.CreateTZRequest{
|
|
UserId: userID,
|
|
RequestTxt: "Нужны поставщики офисной мебели для большого офиса",
|
|
}
|
|
|
|
createResp, err := s.requestClient.CreateTZ(ctx, createReq)
|
|
s.NoError(err)
|
|
s.NotEmpty(createResp.RequestId)
|
|
requestID := createResp.RequestId
|
|
|
|
approveReq := &requestpb.ApproveTZRequest{
|
|
RequestId: requestID,
|
|
FinalTz: "Техническое задание на поставку офисной мебели",
|
|
UserId: userID,
|
|
}
|
|
|
|
approveResp, err := s.requestClient.ApproveTZ(ctx, approveReq)
|
|
s.NoError(err)
|
|
s.NotEmpty(approveResp.RequestId)
|
|
|
|
exportReq := &supplierpb.ExportExcelRequest{
|
|
RequestId: requestID,
|
|
UserId: userID,
|
|
}
|
|
|
|
exportResp, err := s.supplierClient.ExportExcel(ctx, exportReq)
|
|
s.NoError(err)
|
|
s.NotNil(exportResp)
|
|
s.NotEmpty(exportResp.FileName)
|
|
s.NotEmpty(exportResp.FileData)
|
|
s.Equal("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", exportResp.MimeType)
|
|
s.Greater(len(exportResp.FileData), 1000)
|
|
}
|