1
0
mirror of https://github.com/mattermost/focalboard.git synced 2025-01-26 18:48:15 +02:00

Sharing integration tests

This commit is contained in:
Chen-I Lim 2021-01-12 16:44:50 -08:00
parent 2f71295275
commit 1048c009c3
4 changed files with 85 additions and 1 deletions

View File

@ -184,3 +184,30 @@ func (c *Client) GetSubtree(blockID string) ([]model.Block, *Response) {
return model.BlocksFromJSON(r.Body), BuildResponse(r)
}
// Sharing
func (c *Client) GetSharingRoute(rootID string) string {
return fmt.Sprintf("/sharing/%s", rootID)
}
func (c *Client) GetSharing(rootID string) (*model.Sharing, *Response) {
r, err := c.DoApiGet(c.GetSharingRoute(rootID), "")
if err != nil {
return nil, BuildErrorResponse(r, err)
}
defer closeBody(r)
sharing := model.SharingFromJSON(r.Body)
return &sharing, BuildResponse(r)
}
func (c *Client) PostSharing(sharing model.Sharing) (bool, *Response) {
r, err := c.DoApiPost(c.GetSharingRoute(sharing.ID), toJSON(sharing))
if err != nil {
return false, BuildErrorResponse(r, err)
}
defer closeBody(r)
return true, BuildResponse(r)
}

View File

@ -0,0 +1,46 @@
package integrationtests
import (
"testing"
"github.com/mattermost/mattermost-octo-tasks/server/model"
"github.com/mattermost/mattermost-octo-tasks/server/utils"
"github.com/stretchr/testify/require"
)
func TestSharing(t *testing.T) {
th := SetupTestHelper().InitBasic()
defer th.TearDown()
rootID := utils.CreateGUID()
token := utils.CreateGUID()
t.Run("Check no initial sharing", func(t *testing.T) {
sharing, resp := th.Client.GetSharing(rootID)
require.NoError(t, resp.Error)
require.Empty(t, sharing.ID)
require.False(t, sharing.Enabled)
})
t.Run("POST sharing", func(t *testing.T) {
sharing := model.Sharing{
ID: rootID,
Token: token,
Enabled: true,
UpdateAt: 1,
}
success, resp := th.Client.PostSharing(sharing)
require.True(t, success)
require.NoError(t, resp.Error)
})
t.Run("GET sharing", func(t *testing.T) {
sharing, resp := th.Client.GetSharing(rootID)
require.NoError(t, resp.Error)
require.NotNil(t, sharing)
require.Equal(t, sharing.ID, rootID)
require.True(t, sharing.Enabled)
require.Equal(t, sharing.Token, token)
})
}

View File

@ -1,5 +1,10 @@
package model
import (
"encoding/json"
"io"
)
type Sharing struct {
ID string `json:"id"`
Token string `json:"token"`
@ -7,3 +12,9 @@ type Sharing struct {
ModifiedBy string `json:"modifiedBy"`
UpdateAt int64 `json:"update_at,omitempty"`
}
func SharingFromJSON(data io.Reader) Sharing {
var sharing Sharing
json.NewDecoder(data).Decode(&sharing)
return sharing
}

View File

@ -27,7 +27,7 @@ func (s *SQLStore) UpsertSharing(sharing model.Sharing) error {
sharing.ModifiedBy,
now,
).
Suffix("ON CONFLICT (id) DO SET enabled = EXCLUDED.enabled, token = EXCLUDED.token, modified_by = EXCLUDED.modified_by, update_at = EXCLUDED.update_at")
Suffix("ON CONFLICT (id) DO UPDATE SET enabled = EXCLUDED.enabled, token = EXCLUDED.token, modified_by = EXCLUDED.modified_by, update_at = EXCLUDED.update_at")
_, err := query.Exec()
return err