Require at least one element in interactive dialogs (#10003)

Этот коммит содержится в:
Joram Wilander
2018-12-14 10:30:07 -05:00
коммит произвёл Carlos Tadeu Panato Junior
родитель c06e42b24a
Коммит 6c2e216c3f
2 изменённых файлов: 18 добавлений и 22 удалений

Просмотреть файл

@@ -59,6 +59,11 @@ func openDialog(c *Context, w http.ResponseWriter, r *http.Request) {
return
}
if dialog.Dialog.Elements == nil || len(dialog.Dialog.Elements) == 0 {
c.SetInvalidParam("dialog.elements")
return
}
if err := c.App.OpenInteractiveDialog(dialog); err != nil {
c.Err = err
return

Просмотреть файл

@@ -15,7 +15,7 @@ import (
"github.com/stretchr/testify/require"
)
/*func TestOpenDialog(t *testing.T) {
func TestOpenDialog(t *testing.T) {
th := Setup().InitBasic()
defer th.TearDown()
Client := th.Client
@@ -24,11 +24,6 @@ import (
*cfg.ServiceSettings.AllowedUntrustedInternalConnections = "localhost 127.0.0.1"
})
WebSocketClient, err := th.CreateWebSocketClient()
require.Nil(t, err)
WebSocketClient.Listen()
_, triggerId, err := model.GenerateTriggerId(th.BasicUser.Id, th.App.AsymmetricSigningKey())
require.Nil(t, err)
@@ -56,21 +51,6 @@ import (
CheckNoError(t, resp)
assert.True(t, pass)
timeout := time.After(300 * time.Millisecond)
waiting := true
for waiting {
select {
case event := <-WebSocketClient.EventChannel:
if event.Event == model.WEBSOCKET_EVENT_OPEN_DIALOG {
waiting = false
}
case <-timeout:
waiting = false
t.Fatal("should have received open_dialog event")
}
}
// Should fail on bad trigger ID
request.TriggerId = "junk"
pass, resp = Client.OpenInteractiveDialog(request)
@@ -83,7 +63,18 @@ import (
pass, resp = Client.OpenInteractiveDialog(request)
CheckBadRequestStatus(t, resp)
assert.False(t, pass)
}*/
// At least one element is required
request.URL = "http://localhost:8065"
request.Dialog.Elements = nil
pass, resp = Client.OpenInteractiveDialog(request)
CheckBadRequestStatus(t, resp)
assert.False(t, pass)
request.Dialog.Elements = []model.DialogElement{}
pass, resp = Client.OpenInteractiveDialog(request)
CheckBadRequestStatus(t, resp)
assert.False(t, pass)
}
func TestSubmitDialog(t *testing.T) {
th := Setup().InitBasic()