Skip to content

Commit

Permalink
Add room deletion test
Browse files Browse the repository at this point in the history
  • Loading branch information
lazeratops committed May 21, 2023
1 parent b990b70 commit 7f9836d
Show file tree
Hide file tree
Showing 3 changed files with 73 additions and 3 deletions.
5 changes: 3 additions & 2 deletions daily/room/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,10 @@ func Delete(creds auth.Creds, roomName string) error {
}
if dr.Deleted {
if dr.RoomName != roomName {
return fmt.Errorf("requested deletion was of room name '%s', but room reported deleted was '%s'", roomName, dr.RoomName)
err := fmt.Errorf("requested deletion was of room name '%s', but room reported deleted was '%s'", roomName, dr.RoomName)
return NewErrFailRoomDelete(err)
}
return nil
}
return errors.New("failed to delete room")
return NewErrFailRoomDelete(errors.New("room not deleted"))
}
7 changes: 6 additions & 1 deletion daily/room/errors.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,14 @@ import (
)

var (
ErrFailUnmarshal = errors.New("failed to unmarshal response body into Room")
ErrFailUnmarshal = errors.New("failed to unmarshal response body into Room")
ErrFailRoomDelete = errors.New("failed to delete room")
)

func NewErrFailUnmarshal(unmarshalErr error) error {
return fmt.Errorf("%s: %w", unmarshalErr, ErrFailUnmarshal)
}

func NewErrFailRoomDelete(deleteErr error) error {
return fmt.Errorf("%s: %w", deleteErr, ErrFailRoomDelete)
}
64 changes: 64 additions & 0 deletions daily/room/tests/delete_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package tests

import (
"github.com/lazeratops/daily-go/daily/auth"
"github.com/lazeratops/daily-go/daily/room"
"github.com/stretchr/testify/require"
"net/http"
"net/http/httptest"
"testing"
)

func TestDeleteRoom(t *testing.T) {
t.Parallel()
testCases := []struct {
name string
roomName string
dailyResStatusCode int
dailyResBody string
wantErr error
}{
{
name: "success",
roomName: "room-0253",
dailyResStatusCode: 200,
dailyResBody: `
{
"deleted": true,
"name": "room-0253"
}`,
},
{
name: "wrong-room-name",
roomName: "room-0253",
dailyResStatusCode: 200,
dailyResBody: `
{
"deleted": true,
"name": "room-0251"
}`,
wantErr: room.ErrFailRoomDelete,
},
}

for _, tc := range testCases {
tc := tc
t.Run(tc.name, func(t *testing.T) {
t.Parallel()

testServer := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(tc.dailyResStatusCode)
_, err := w.Write([]byte(tc.dailyResBody))
require.NoError(t, err)
}))

defer testServer.Close()

gotErr := room.Delete(auth.Creds{
APIKey: "someKey",
APIURL: testServer.URL,
}, tc.roomName)
require.ErrorIs(t, gotErr, tc.wantErr)
})
}
}

0 comments on commit 7f9836d

Please sign in to comment.