Skip to content

Commit

Permalink
fix:test case
Browse files Browse the repository at this point in the history
  • Loading branch information
utsav14nov committed Oct 8, 2024
1 parent 62afe97 commit c3ed86e
Showing 1 changed file with 104 additions and 0 deletions.
104 changes: 104 additions & 0 deletions plugins/notifiers/client_test.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package notifiers

import (
"context"
"fmt"
"reflect"
"testing"

Expand Down Expand Up @@ -215,3 +217,105 @@ func TestNewSlackLarkConfig(t *testing.T) {
})
}
}
func TestNotify(t *testing.T) {
var errs []error
type fields struct {
clients []Client
configs []Config
}
type args struct {
ctx context.Context
notification []domain.Notification
}
tests := []struct {
name string
fields fields
args args
want []error
}{
{
name: "should return no errors when notifications are empty",
fields: fields{
clients: []Client{},
configs: []Config{},
},
args: args{
ctx: context.Background(),
notification: []domain.Notification{},
},
want: errs,
},
{
name: "should return error when criteria does not evaluate to boolean",
fields: fields{
clients: []Client{&mockClient{}},
configs: []Config{
{
Criteria: "1 + 1",
},
},
},
args: args{
ctx: context.Background(),
notification: []domain.Notification{
{User: "[email protected]"},
},
},
want: []error{fmt.Errorf("notifier expression did not evaluate to a boolean: 1 + 1")},
},
{
name: "should notify client when criteria evaluates to true",
fields: fields{
clients: []Client{&mockClient{}},
configs: []Config{
{
Criteria: "1 == 1",
},
},
},
args: args{
ctx: context.Background(),
notification: []domain.Notification{
{User: "[email protected]"},
},
},
want: errs,
},
{
name: "should not notify client when criteria evaluates to false",
fields: fields{
clients: []Client{&mockClient{}},
configs: []Config{
{
Criteria: "1 == 2",
},
},
},
args: args{
ctx: context.Background(),
notification: []domain.Notification{
{User: "[email protected]"},
},
},
want: errs,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
m := &NotifyManager{
clients: tt.fields.clients,
configs: tt.fields.configs,
}
fmt.Println()
if got := m.Notify(tt.args.ctx, tt.args.notification); !reflect.DeepEqual(got, tt.want) {
t.Errorf("Notify() = %v, want %v", got, tt.want)
}
})
}
}

type mockClient struct{}

func (m *mockClient) Notify(ctx context.Context, notifications []domain.Notification) []error {
return nil
}

0 comments on commit c3ed86e

Please sign in to comment.