package app import ( "context" "strings" "testing" proto "evening_detective_server/proto" ) func TestGetLegalDocs(t *testing.T) { s := &server{} tests := []struct { name string call func() (text, errText string) wantPart string }{ { name: "GetTerms отдаёт Пользовательское соглашение", call: func() (string, string) { rsp, err := s.GetTerms(context.Background(), &proto.GetTermsReq{}) if err != nil { t.Fatalf("GetTerms error: %v", err) } return rsp.Text, rsp.Error }, wantPart: "СОГЛАШЕНИЕ", }, { name: "GetPrivacy отдаёт Политику конфиденциальности", call: func() (string, string) { rsp, err := s.GetPrivacy(context.Background(), &proto.GetPrivacyReq{}) if err != nil { t.Fatalf("GetPrivacy error: %v", err) } return rsp.Text, rsp.Error }, wantPart: "КОНФИДЕНЦИАЛЬНОСТИ", }, { name: "GetConsent отдаёт текст согласия на обработку ПДн", call: func() (string, string) { rsp, err := s.GetConsent(context.Background(), &proto.GetConsentReq{}) if err != nil { t.Fatalf("GetConsent error: %v", err) } return rsp.Text, rsp.Error }, wantPart: "СОГЛАСИЕ", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { text, errText := tt.call() if errText != "" { t.Fatalf("ожидался успех, получена ошибка: %s", errText) } if !strings.Contains(text, tt.wantPart) { t.Errorf("текст документа не содержит %q", tt.wantPart) } }) } }