Skip to content

Commit

Permalink
Increase test coverage in flag_test.go flipt-io#2
Browse files Browse the repository at this point in the history
  • Loading branch information
u5surf committed Feb 20, 2019
1 parent 497e080 commit d978642
Showing 1 changed file with 202 additions and 16 deletions.
218 changes: 202 additions & 16 deletions server/flag_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package server

import (
"context"
"errors"
"testing"

"github.com/golang/protobuf/ptypes/empty"
Expand Down Expand Up @@ -61,6 +62,8 @@ func TestGetFlag(t *testing.T) {
name string
req *flipt.GetFlagRequest
f func(context.Context, *flipt.GetFlagRequest) (*flipt.Flag, error)
flag *flipt.Flag
e error
}{
{
name: "ok",
Expand All @@ -73,6 +76,24 @@ func TestGetFlag(t *testing.T) {
Key: "key",
}, nil
},
flag: &flipt.Flag{
Key: "key",
},
e: nil,
},
{
name: "emptykey",
req: &flipt.GetFlagRequest{Key: ""},
f: func(_ context.Context, r *flipt.GetFlagRequest) (*flipt.Flag, error) {
assert.NotNil(t, r)
assert.Equal(t, "", r.Key)

return &flipt.Flag{
Key: "",
}, nil
},
flag: nil,
e: EmptyFieldError("key"),
},
}

Expand All @@ -85,17 +106,19 @@ func TestGetFlag(t *testing.T) {
}

flag, err := s.GetFlag(context.TODO(), tt.req)
require.NoError(t, err)
assert.NotNil(t, flag)
assert.Equal(t, err, tt.e)
assert.Equal(t, flag, tt.flag)
})
}
}

func TestListFlags(t *testing.T) {
tests := []struct {
name string
req *flipt.ListFlagRequest
f func(context.Context, *flipt.ListFlagRequest) ([]*flipt.Flag, error)
name string
req *flipt.ListFlagRequest
f func(context.Context, *flipt.ListFlagRequest) ([]*flipt.Flag, error)
flags *flipt.FlagList
e error
}{
{
name: "ok",
Expand All @@ -105,6 +128,23 @@ func TestListFlags(t *testing.T) {
{Key: "flag"},
}, nil
},
flags: &flipt.FlagList{
Flags: []*flipt.Flag{
&flipt.Flag{
Key: "flag",
},
},
},
e: nil,
},
{
name: "err",
req: &flipt.ListFlagRequest{},
f: func(context.Context, *flipt.ListFlagRequest) ([]*flipt.Flag, error) {
return nil, errors.New("test error")
},
flags: nil,
e: errors.New("test error"),
},
}

Expand All @@ -117,8 +157,8 @@ func TestListFlags(t *testing.T) {
}

resp, err := s.ListFlags(context.TODO(), tt.req)
require.NoError(t, err)
assert.NotNil(t, resp)
assert.Equal(t, err, tt.e)
assert.Equal(t, resp, tt.flags)
})
}
}
Expand All @@ -128,6 +168,8 @@ func TestCreateFlag(t *testing.T) {
name string
req *flipt.CreateFlagRequest
f func(context.Context, *flipt.CreateFlagRequest) (*flipt.Flag, error)
flag *flipt.Flag
e error
}{
{
name: "ok",
Expand All @@ -151,6 +193,63 @@ func TestCreateFlag(t *testing.T) {
Enabled: r.Enabled,
}, nil
},
flag: &flipt.Flag{
Key: "key",
Name: "name",
Description: "desc",
Enabled: true,
},
e: nil,
},
{
name: "emptykey",
req: &flipt.CreateFlagRequest{
Key: "",
Name: "name",
Description: "desc",
Enabled: true,
},
f: func(_ context.Context, r *flipt.CreateFlagRequest) (*flipt.Flag, error) {
assert.NotNil(t, r)
assert.Equal(t, "", r.Key)
assert.Equal(t, "name", r.Name)
assert.Equal(t, "desc", r.Description)
assert.True(t, r.Enabled)

return &flipt.Flag{
Key: "",
Name: r.Name,
Description: r.Description,
Enabled: r.Enabled,
}, nil
},
flag: nil,
e: EmptyFieldError("key"),
},
{
name: "emptyname",
req: &flipt.CreateFlagRequest{
Key: "key",
Name: "",
Description: "desc",
Enabled: true,
},
f: func(_ context.Context, r *flipt.CreateFlagRequest) (*flipt.Flag, error) {
assert.NotNil(t, r)
assert.Equal(t, "key", r.Key)
assert.Equal(t, "", r.Name)
assert.Equal(t, "desc", r.Description)
assert.True(t, r.Enabled)

return &flipt.Flag{
Key: r.Key,
Name: "",
Description: r.Description,
Enabled: r.Enabled,
}, nil
},
flag: nil,
e: EmptyFieldError("name"),
},
}

Expand All @@ -163,8 +262,8 @@ func TestCreateFlag(t *testing.T) {
}

flag, err := s.CreateFlag(context.TODO(), tt.req)
require.NoError(t, err)
assert.NotNil(t, flag)
assert.Equal(t, err, tt.e)
assert.Equal(t, flag, tt.flag)
})
}
}
Expand All @@ -174,6 +273,8 @@ func TestUpdateFlag(t *testing.T) {
name string
req *flipt.UpdateFlagRequest
f func(context.Context, *flipt.UpdateFlagRequest) (*flipt.Flag, error)
flag *flipt.Flag
e error
}{
{
name: "ok",
Expand All @@ -197,6 +298,63 @@ func TestUpdateFlag(t *testing.T) {
Enabled: r.Enabled,
}, nil
},
flag: &flipt.Flag{
Key: "key",
Name: "name",
Description: "desc",
Enabled: true,
},
e: nil,
},
{
name: "emptykey",
req: &flipt.UpdateFlagRequest{
Key: "",
Name: "name",
Description: "desc",
Enabled: true,
},
f: func(_ context.Context, r *flipt.UpdateFlagRequest) (*flipt.Flag, error) {
assert.NotNil(t, r)
assert.Equal(t, "", r.Key)
assert.Equal(t, "name", r.Name)
assert.Equal(t, "desc", r.Description)
assert.True(t, r.Enabled)

return &flipt.Flag{
Key: "",
Name: r.Name,
Description: r.Description,
Enabled: r.Enabled,
}, nil
},
flag: nil,
e: EmptyFieldError("key"),
},
{
name: "emptyname",
req: &flipt.UpdateFlagRequest{
Key: "key",
Name: "",
Description: "desc",
Enabled: true,
},
f: func(_ context.Context, r *flipt.UpdateFlagRequest) (*flipt.Flag, error) {
assert.NotNil(t, r)
assert.Equal(t, "key", r.Key)
assert.Equal(t, "", r.Name)
assert.Equal(t, "desc", r.Description)
assert.True(t, r.Enabled)

return &flipt.Flag{
Key: r.Key,
Name: "",
Description: r.Description,
Enabled: r.Enabled,
}, nil
},
flag: nil,
e: EmptyFieldError("name"),
},
}

Expand All @@ -209,17 +367,19 @@ func TestUpdateFlag(t *testing.T) {
}

flag, err := s.UpdateFlag(context.TODO(), tt.req)
require.NoError(t, err)
assert.NotNil(t, flag)
assert.Equal(t, err, tt.e)
assert.Equal(t, flag, tt.flag)
})
}
}

func TestDeleteFlag(t *testing.T) {
tests := []struct {
name string
req *flipt.DeleteFlagRequest
f func(context.Context, *flipt.DeleteFlagRequest) error
name string
req *flipt.DeleteFlagRequest
f func(context.Context, *flipt.DeleteFlagRequest) error
empty *empty.Empty
e error
}{
{
name: "ok",
Expand All @@ -230,6 +390,32 @@ func TestDeleteFlag(t *testing.T) {

return nil
},
empty: &empty.Empty{},
e: nil,
},
{
name: "emptykey",
req: &flipt.DeleteFlagRequest{Key: ""},
f: func(_ context.Context, r *flipt.DeleteFlagRequest) error {
assert.NotNil(t, r)
assert.Equal(t, "", r.Key)

return nil
},
empty: nil,
e: EmptyFieldError("key"),
},
{
name: "error",
req: &flipt.DeleteFlagRequest{Key: "key"},
f: func(_ context.Context, r *flipt.DeleteFlagRequest) error {
assert.NotNil(t, r)
assert.Equal(t, "key", r.Key)

return errors.New("test error")
},
empty: nil,
e: errors.New("test error"),
},
}

Expand All @@ -242,8 +428,8 @@ func TestDeleteFlag(t *testing.T) {
}

resp, err := s.DeleteFlag(context.TODO(), tt.req)
require.NoError(t, err)
assert.Equal(t, &empty.Empty{}, resp)
assert.Equal(t, err, tt.e)
assert.Equal(t, resp, tt.empty)
})
}
}
Expand Down

0 comments on commit d978642

Please sign in to comment.