mirror of
https://github.com/twofas/2fas-server.git
synced 2024-11-22 18:30:00 +01:00
128 lines
3.5 KiB
Go
128 lines
3.5 KiB
Go
package tests
|
|
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/suite"
|
|
"github.com/twofas/2fas-server/tests"
|
|
"testing"
|
|
)
|
|
|
|
type iconsCollectionResponse struct {
|
|
Id string `json:"id"`
|
|
Name string `json:"name"`
|
|
Description string `json:"description"`
|
|
Icons []string `json:"icons"`
|
|
CreatedAt string `json:"created_at"`
|
|
UpdatedAt string `json:"updated_at"`
|
|
}
|
|
|
|
func TestIconsCollectionsTestSuite(t *testing.T) {
|
|
suite.Run(t, new(IconsCollectionsTestSuite))
|
|
}
|
|
|
|
type IconsCollectionsTestSuite struct {
|
|
suite.Suite
|
|
}
|
|
|
|
func (s *IconsCollectionsTestSuite) SetupTest() {
|
|
tests.DoSuccessDelete(s.T(), "mobile/icons/collections")
|
|
}
|
|
|
|
func (s *IconsCollectionsTestSuite) TestCreateIconsCollection() {
|
|
payload := []byte(`
|
|
{
|
|
"name":"facebook",
|
|
"description":"desc",
|
|
"icons":["123e4567-e89b-12d3-a456-426614174000"]
|
|
}
|
|
`)
|
|
|
|
var IconsCollection *iconsCollectionResponse
|
|
tests.DoSuccessPost(s.T(), "mobile/icons/collections", payload, &IconsCollection)
|
|
|
|
assert.Equal(s.T(), "facebook", IconsCollection.Name)
|
|
assert.Equal(s.T(), "desc", IconsCollection.Description)
|
|
assert.Equal(s.T(), []string{"123e4567-e89b-12d3-a456-426614174000"}, IconsCollection.Icons)
|
|
}
|
|
|
|
func (s *IconsCollectionsTestSuite) TestUpdateIconsCollection() {
|
|
payload := []byte(`
|
|
{
|
|
"name":"facebook",
|
|
"description":"another",
|
|
"icons":["123e4567-e89b-12d3-a456-426614174000"]
|
|
}
|
|
`)
|
|
var iconsCollection *iconsCollectionResponse
|
|
tests.DoSuccessPost(s.T(), "mobile/icons/collections", payload, &iconsCollection)
|
|
|
|
updatePayload := []byte(`
|
|
{
|
|
"name":"meta",
|
|
"icons":["icon-1", "icon-2"]
|
|
}
|
|
`)
|
|
|
|
var updatedIconsCollection *iconsCollectionResponse
|
|
tests.DoSuccessPut(s.T(), "mobile/icons/collections/"+iconsCollection.Id, updatePayload, &updatedIconsCollection)
|
|
|
|
assert.Equal(s.T(), "meta", updatedIconsCollection.Name)
|
|
assert.Equal(s.T(), []string{"icon-1", "icon-2"}, updatedIconsCollection.Icons)
|
|
}
|
|
|
|
func (s *IconsCollectionsTestSuite) TestDeleteIconsCollection() {
|
|
payload := []byte(`
|
|
{
|
|
"name":"facebook icons",
|
|
"icons":["icon-1", "icon-2"]
|
|
}
|
|
`)
|
|
var iconsCollection *iconsCollectionResponse
|
|
tests.DoSuccessPost(s.T(), "mobile/icons/collections", payload, &iconsCollection)
|
|
|
|
tests.DoSuccessDelete(s.T(), "mobile/icons/collections/"+iconsCollection.Id)
|
|
|
|
response := tests.DoGet("mobile/icons/collections/"+iconsCollection.Id, nil)
|
|
assert.Equal(s.T(), 404, response.StatusCode)
|
|
}
|
|
|
|
func (s *IconsCollectionsTestSuite) TestFindAllIconsCollections() {
|
|
payload := []byte(`
|
|
{
|
|
"name":"facebook",
|
|
"icons":["icon-1", "icon-2"]
|
|
}
|
|
`)
|
|
tests.DoSuccessPost(s.T(), "mobile/icons/collections", payload, nil)
|
|
|
|
payload2 := []byte(`
|
|
{
|
|
"name":"google",
|
|
"description":"google google",
|
|
"icons":["123e4567-e89b-12d3-a456-426614174000"]
|
|
}
|
|
`)
|
|
tests.DoSuccessPost(s.T(), "mobile/icons/collections", payload2, nil)
|
|
|
|
var IconsCollections []*iconsCollectionResponse
|
|
tests.DoSuccessGet(s.T(), "mobile/icons/collections", &IconsCollections)
|
|
assert.Len(s.T(), IconsCollections, 2)
|
|
}
|
|
|
|
func (s *IconsCollectionsTestSuite) TestFindIconsCollection() {
|
|
payload := []byte(`
|
|
{
|
|
"name":"just-one",
|
|
"description":"another",
|
|
"icons":["123e4567-e89b-12d3-a456-426614174000"]
|
|
}
|
|
`)
|
|
var createdIconsCollection *iconsCollectionResponse
|
|
tests.DoSuccessPost(s.T(), "mobile/icons/collections", payload, &createdIconsCollection)
|
|
|
|
var IconsCollection *iconsCollectionResponse
|
|
tests.DoSuccessGet(s.T(), "mobile/icons/collections/"+createdIconsCollection.Id, &IconsCollection)
|
|
|
|
assert.Equal(s.T(), "just-one", IconsCollection.Name)
|
|
}
|