package handler_test import ( "testing" "github.com/google/uuid" "github.com/micro/services/users/handler" pb "github.com/micro/services/users/proto" "github.com/stretchr/testify/assert" ) func TestLogout(t *testing.T) { h := testHandler(t) t.Run("MissingUserID", func(t *testing.T) { err := h.Logout(microAccountCtx(), &pb.LogoutRequest{}, &pb.LogoutResponse{}) assert.Equal(t, handler.ErrMissingID, err) }) t.Run("UserNotFound", func(t *testing.T) { err := h.Logout(microAccountCtx(), &pb.LogoutRequest{Id: uuid.New().String()}, &pb.LogoutResponse{}) assert.Equal(t, handler.ErrNotFound, err) }) t.Run("Valid", func(t *testing.T) { // create some mock data var cRsp pb.CreateResponse cReq := pb.CreateRequest{ FirstName: "John", LastName: "Doe", Email: "john@doe.com", Password: "passwordabc", } err := h.Create(microAccountCtx(), &cReq, &cRsp) assert.NoError(t, err) if cRsp.User == nil { t.Fatal("No user returned") return } err = h.Logout(microAccountCtx(), &pb.LogoutRequest{Id: cRsp.User.Id}, &pb.LogoutResponse{}) assert.NoError(t, err) err = h.Validate(microAccountCtx(), &pb.ValidateRequest{Token: cRsp.Token}, &pb.ValidateResponse{}) assert.Error(t, err) }) }