feat: add a new command - /group monitor add
This commit is contained in:
parent
d6b2718d26
commit
7056290971
|
@ -18,7 +18,14 @@ type CreateMonitorParams struct {
|
||||||
groupID string
|
groupID string
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewCreateMonitorParams(tribeID int64, groupID string) (CreateMonitorParams, error) {
|
func NewCreateMonitorParams(groupID string, tribeID int64) (CreateMonitorParams, error) {
|
||||||
|
if groupID == "" {
|
||||||
|
return CreateMonitorParams{}, ValidationError{
|
||||||
|
Field: "GroupID",
|
||||||
|
Err: ErrRequired,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if tribeID < tribeIDMin {
|
if tribeID < tribeIDMin {
|
||||||
return CreateMonitorParams{}, ValidationError{
|
return CreateMonitorParams{}, ValidationError{
|
||||||
Field: "TribeID",
|
Field: "TribeID",
|
||||||
|
@ -28,13 +35,6 @@ func NewCreateMonitorParams(tribeID int64, groupID string) (CreateMonitorParams,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if groupID == "" {
|
|
||||||
return CreateMonitorParams{}, ValidationError{
|
|
||||||
Field: "GroupID",
|
|
||||||
Err: ErrRequired,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return CreateMonitorParams{tribeID: tribeID, groupID: groupID}, nil
|
return CreateMonitorParams{tribeID: tribeID, groupID: groupID}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,66 @@
|
||||||
package domain_test
|
package domain_test
|
||||||
|
|
||||||
import "testing"
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"gitea.dwysokinski.me/twhelp/dcbot/internal/domain"
|
||||||
|
"github.com/google/uuid"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
func TestNewCreateMonitorParams(t *testing.T) {
|
func TestNewCreateMonitorParams(t *testing.T) {
|
||||||
t.Parallel()
|
t.Parallel()
|
||||||
|
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
tribeID int64
|
||||||
|
groupID string
|
||||||
|
err error
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "OK",
|
||||||
|
tribeID: 15,
|
||||||
|
groupID: uuid.NewString(),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ERR: GroupID cannot be blank",
|
||||||
|
groupID: "",
|
||||||
|
err: domain.ValidationError{
|
||||||
|
Field: "GroupID",
|
||||||
|
Err: domain.ErrRequired,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "ERR: TribeID < 1",
|
||||||
|
groupID: uuid.NewString(),
|
||||||
|
tribeID: 0,
|
||||||
|
err: domain.ValidationError{
|
||||||
|
Field: "TribeID",
|
||||||
|
Err: domain.MinError{
|
||||||
|
Min: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, tt := range tests {
|
||||||
|
tt := tt
|
||||||
|
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
t.Parallel()
|
||||||
|
|
||||||
|
res, err := domain.NewCreateMonitorParams(
|
||||||
|
tt.groupID,
|
||||||
|
tt.tribeID,
|
||||||
|
)
|
||||||
|
if tt.err != nil {
|
||||||
|
assert.ErrorIs(t, err, tt.err)
|
||||||
|
assert.Zero(t, res)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Equal(t, tt.groupID, res.GroupID())
|
||||||
|
assert.Equal(t, tt.tribeID, res.TribeID())
|
||||||
|
})
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user