update tests
This commit is contained in:
parent
90cab29e48
commit
68300ed480
@ -372,7 +372,7 @@ func (d *DAL) WatchTickets(
|
||||
|
||||
for cs.Next(ctx) {
|
||||
var (
|
||||
piece model.Ticket
|
||||
piece model.Ticket
|
||||
change Change
|
||||
)
|
||||
if err := cs.Decode(&change); err != nil {
|
||||
@ -443,6 +443,7 @@ func (d *DAL) YieldUserTickets(ctx context.Context, userID string, limit, offset
|
||||
query := bson.M{
|
||||
"UserID": userID,
|
||||
}
|
||||
fmt.Println("UserID", userID)
|
||||
|
||||
sort := bson.D{{"State", -1}, {"UpdatedAt", -1}}
|
||||
|
||||
@ -489,7 +490,7 @@ func (d *DAL) WatchAllTickets(ctx context.Context, yield func(ticket model.Ticke
|
||||
|
||||
for cs.Next(ctx) {
|
||||
var (
|
||||
piece model.Ticket
|
||||
piece model.Ticket
|
||||
change Change
|
||||
)
|
||||
|
||||
@ -624,10 +625,10 @@ func (d *DAL) WatchMessages(
|
||||
|
||||
for cs.Next(ctx) {
|
||||
var (
|
||||
piece model.Message
|
||||
piece model.Message
|
||||
change Change
|
||||
)
|
||||
|
||||
|
||||
if err := cs.Decode(&change); err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -173,13 +173,14 @@ func (h *Heruvym) CreateTicket(w http.ResponseWriter, r *http.Request) {
|
||||
var _ tools.DataEmitter = (&Heruvym{}).GetList
|
||||
|
||||
func (h *Heruvym) GetList(ctx context.Context) chan interface{} {
|
||||
fmt.Println("GetList")
|
||||
defer func() {
|
||||
if rec := recover(); rec != nil {
|
||||
fmt.Println(rec)
|
||||
}
|
||||
}()
|
||||
sess := jwt_adapter.Get(ctx)
|
||||
|
||||
fmt.Println("sess", sess)
|
||||
if sess == nil {
|
||||
return nil
|
||||
}
|
||||
@ -305,7 +306,7 @@ func (h *Heruvym) PutMessage(
|
||||
request.TicketID,
|
||||
[]string{},
|
||||
)
|
||||
fmt.Println("PUTMES00", err)
|
||||
fmt.Println("PUTMES00", err)
|
||||
if err != nil {
|
||||
fmt.Println("PUTMES1", err)
|
||||
return errors.New("can not put message"), http.StatusInternalServerError
|
||||
@ -356,7 +357,7 @@ func (h *Heruvym) PutMessage(
|
||||
//return errors.New("can not update ticket"), http.StatusInternalServerError
|
||||
}
|
||||
|
||||
fmt.Println("PUTMES03" )
|
||||
fmt.Println("PUTMES03")
|
||||
return nil, http.StatusOK
|
||||
}
|
||||
|
||||
|
@ -25,15 +25,22 @@ import (
|
||||
"heruvym/jwt_adapter"
|
||||
)
|
||||
|
||||
var ticket service.CreateTicketResp
|
||||
var msgs = make(chan []byte)
|
||||
var token string
|
||||
///create+
|
||||
///subscribe todo
|
||||
///ticket+
|
||||
///send+
|
||||
///sendFile+
|
||||
///getTickets
|
||||
///getMessages
|
||||
|
||||
func TestTicket(t *testing.T) {
|
||||
fmt.Println("start test")
|
||||
ctx, cancel := context.WithCancel(context.Background())
|
||||
defer cancel()
|
||||
bdd.Scenario(t, "SupportChat", func(t *testing.T, runID string) {
|
||||
var ticket service.CreateTicketResp
|
||||
var msgs = make(chan []byte)
|
||||
var token string
|
||||
go func() {
|
||||
|
||||
time.Sleep(3 * time.Second)
|
||||
@ -154,33 +161,33 @@ func TestTicket(t *testing.T) {
|
||||
}()
|
||||
|
||||
})
|
||||
//bdd.Test(t, "send message", func() {
|
||||
//
|
||||
// buf, err := json.Marshal(service.ReqPutMessage{
|
||||
// Message: "test",
|
||||
// TicketID: ticket.Ticket,
|
||||
// Lang: "ru",
|
||||
// })
|
||||
// if err != nil {
|
||||
// panic(err)
|
||||
// }
|
||||
//
|
||||
// req, err := http.NewRequestWithContext(ctx, http.MethodPost, "http://localhost:1488/send", bytes.NewBuffer(buf))
|
||||
// assert.NoError(t, err)
|
||||
// req.Header.Set("Referer", "http://localhost:1488")
|
||||
// req.Header.Add(jwt_adapter.DefaultHeaderKey, "Bearer "+token)
|
||||
// resp, err := http.DefaultClient.Do(req)
|
||||
// fmt.Println(resp)
|
||||
// assert.NoError(t, err)
|
||||
//
|
||||
// assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
//
|
||||
// var msg, channed model.Message
|
||||
// assert.NoError(t, json.NewDecoder(resp.Body).Decode(&msg))
|
||||
// err = json.Unmarshal(<-msgs, &channed)
|
||||
// assert.NoError(t, err)
|
||||
// assert.Equal(t, "test", channed.Message)
|
||||
//})
|
||||
bdd.Test(t, "send message", func() {
|
||||
|
||||
buf, err := json.Marshal(service.ReqPutMessage{
|
||||
Message: "test",
|
||||
TicketID: ticket.Ticket,
|
||||
Lang: "ru",
|
||||
})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodPost, "http://localhost:1488/send", bytes.NewBuffer(buf))
|
||||
assert.NoError(t, err)
|
||||
req.Header.Set("Referer", "http://localhost:1488")
|
||||
req.Header.Add(jwt_adapter.DefaultHeaderKey, "Bearer "+token)
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
fmt.Println("resp", resp)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
|
||||
//var msg, channed model.Message
|
||||
//assert.NoError(t, json.NewDecoder(resp.Body).Decode(&msg))
|
||||
//err = json.Unmarshal(<-msgs, &channed)
|
||||
//assert.NoError(t, err)
|
||||
//assert.Equal(t, "test", channed.Message)
|
||||
})
|
||||
bdd.Test(t, "send file", func() {
|
||||
body := &bytes.Buffer{}
|
||||
writer := multipart.NewWriter(body)
|
||||
@ -205,45 +212,54 @@ func TestTicket(t *testing.T) {
|
||||
str, err := ioutil.ReadAll(resp.Body)
|
||||
fmt.Println("resp files", err, string(str))
|
||||
})
|
||||
//todo
|
||||
bdd.Test(t, "/subscribe, tools.SseWrapper(h.GetList)", func() {
|
||||
client := &http.Client{}
|
||||
|
||||
SomeTests(t)
|
||||
r, err := http.NewRequest("GET", "http://localhost:1488/subscribe?Authorization="+token+"&ticket="+ticket.Ticket, nil)
|
||||
assert.NoError(t, err)
|
||||
r.Header.Set("Referer", "http://localhost:1488")
|
||||
r.Header.Set("Accept", "text/event-stream")
|
||||
r.Header.Set("Cache-Control", "no-cache")
|
||||
r.Header.Set("Connection", "keep-alive")
|
||||
resp, err := client.Do(r)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
|
||||
sc := bufio.NewScanner(resp.Body)
|
||||
|
||||
fmt.Println(sc.Bytes())
|
||||
})
|
||||
bdd.Test(t, "/getTickets, tools.HandlerWrapper(h.GetTickets)", func() {
|
||||
client := &http.Client{}
|
||||
reqBody := service.GetTicketsReq{
|
||||
Amount: 10,
|
||||
Page: 1,
|
||||
Search: "test",
|
||||
Status: "open",
|
||||
}
|
||||
reqBytes, err := json.Marshal(reqBody)
|
||||
assert.NoError(t, err)
|
||||
|
||||
req, err := http.NewRequest("POST", "http://localhost:1488/getTickets", bytes.NewBuffer(reqBytes))
|
||||
assert.NoError(t, err)
|
||||
req.Header.Set("Referer", "sadmin.pena")
|
||||
req.Header.Add(jwt_adapter.DefaultHeaderKey, "Bearer "+token)
|
||||
|
||||
resp, err := client.Do(req)
|
||||
|
||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
|
||||
var respBody service.GetTicketsResp
|
||||
err = json.NewDecoder(resp.Body).Decode(&respBody)
|
||||
assert.NoError(t, err)
|
||||
fmt.Println(respBody)
|
||||
})
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
func SomeTests(t *testing.T) {
|
||||
ctx := context.Background()
|
||||
|
||||
fmt.Println(token)
|
||||
bdd.Test(t, "send message", func() {
|
||||
|
||||
buf, err := json.Marshal(service.ReqPutMessage{
|
||||
Message: "test",
|
||||
TicketID: ticket.Ticket,
|
||||
Lang: "ru",
|
||||
})
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
req, err := http.NewRequestWithContext(ctx, http.MethodPost, "http://localhost:1488/send", bytes.NewBuffer(buf))
|
||||
assert.NoError(t, err)
|
||||
req.Header.Set("Referer", "http://localhost:1488")
|
||||
req.Header.Add(jwt_adapter.DefaultHeaderKey, "Bearer "+token)
|
||||
resp, err := http.DefaultClient.Do(req)
|
||||
fmt.Println("resp", resp)
|
||||
assert.NoError(t, err)
|
||||
|
||||
assert.Equal(t, http.StatusOK, resp.StatusCode)
|
||||
|
||||
//var msg, channed model.Message
|
||||
//assert.NoError(t, json.NewDecoder(resp.Body).Decode(&msg))
|
||||
//err = json.Unmarshal(<-msgs, &channed)
|
||||
//assert.NoError(t, err)
|
||||
//assert.Equal(t, "test", channed.Message)
|
||||
})
|
||||
}
|
||||
|
||||
func containsDoubleNewline(data []byte) (int, int) {
|
||||
// Ищем все возможные переносы строки
|
||||
crcr := bytes.Index(data, []byte("\r\r"))
|
||||
|
@ -21,6 +21,7 @@ func SseWrapper(emitter DataEmitter) http.HandlerFunc {
|
||||
}
|
||||
}()
|
||||
// Отправляем header event-stream
|
||||
fmt.Println("SseWrapper")
|
||||
|
||||
w.Header().Set("Content-Type", "text/event-stream")
|
||||
w.Header().Set("Cache-Control", "no-cache")
|
||||
@ -28,6 +29,7 @@ func SseWrapper(emitter DataEmitter) http.HandlerFunc {
|
||||
|
||||
flusher, ok := w.(http.Flusher)
|
||||
if !ok {
|
||||
fmt.Println("!ok")
|
||||
http.Error(
|
||||
w,
|
||||
"flushing is not allowed",
|
||||
@ -35,7 +37,7 @@ func SseWrapper(emitter DataEmitter) http.HandlerFunc {
|
||||
)
|
||||
return
|
||||
}
|
||||
|
||||
fmt.Println("SseWrapper")
|
||||
ctx := context.WithValue(
|
||||
r.Context(),
|
||||
ContextURLKey,
|
||||
@ -45,6 +47,7 @@ func SseWrapper(emitter DataEmitter) http.HandlerFunc {
|
||||
dE := emitter(ctx)
|
||||
|
||||
if dE == nil {
|
||||
fmt.Println("dE")
|
||||
http.Error(w, "no token", http.StatusUnauthorized)
|
||||
return
|
||||
}
|
||||
@ -57,7 +60,7 @@ func SseWrapper(emitter DataEmitter) http.HandlerFunc {
|
||||
case <-time.After(time.Second * 10):
|
||||
SSEPing(w)
|
||||
case m := <-dE:
|
||||
fmt.Println("datatatata", m)
|
||||
fmt.Println("datatatata", m)
|
||||
if m == nil {
|
||||
continue
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user