Preparing report...

Report for github.com/moikot/slack-spy-bot

A    Great!    Found 9 issues across 11 files

Tweet

gofmt100%

Gofmt formats Go programs. We run gofmt -s on your code, where -s is for the "simplify" command

No problems detected. Good job!


go_vet100%

go vet examines Go source code and reports suspicious constructs, such as Printf calls whose arguments do not align with the format string.

No problems detected. Good job!


gocyclo100%

Gocyclo calculates cyclomatic complexities of functions in Go source code. The cyclomatic complexity of a function is calculated according to the following rules: 1 is the base complexity of a function +1 for each 'if', 'for', 'case', '&&' or '||' Go Report Card warns on functions with cyclomatic complexity > 15.

No problems detected. Good job!


golint36%

Golint is a linter for Go source code.

    • slack-spy-bot/router.go
    • Line 10: warning: exported type Router should have comment or be unexported (golint)
    • Line 18: warning: exported function NewRouter should have comment or be unexported (golint)
    • slack-spy-bot/router_mock.go
    • Line 10: warning: exported type RouterMock should have comment or be unexported (golint)
    • Line 14: warning: exported method RouterMock.RouteEvent should have comment or be unexported (golint)
    • Line 18: warning: exported method RouterMock.RouteMessage should have comment or be unexported (golint)
    • Line 22: warning: exported method RouterMock.AddEventHandler should have comment or be unexported (golint)
    • Line 26: warning: exported method RouterMock.AddMessageHandler should have comment or be unexported (golint)
    • slack-spy-bot/bot.go
    • Line 11: warning: exported type Bot should have comment or be unexported (golint)
    • Line 17: warning: exported var SpyOnRegEx should have comment or be unexported (golint)
    • Line 21: warning: exported function NewBot should have comment or be unexported (golint)
    • Line 28: warning: exported method Bot.Hello should have comment or be unexported (golint)
    • Line 32: warning: exported method Bot.PresenceChange should have comment or be unexported (golint)
    • Line 50: warning: exported method Bot.SpyOn should have comment or be unexported (golint)
    • Line 72: warning: exported method Bot.SpyOff should have comment or be unexported (golint)
    • slack-spy-bot/database.go
    • Line 33: warning: exported function NewUserCollection should have comment or be unexported (golint)
    • Line 61: warning: if block ends with a return statement, so drop this else and outdent its block (golint)
    • slack-spy-bot/database_mock.go
    • Line 9: warning: exported type UserCollectionMock should have comment or be unexported (golint)
    • Line 13: warning: exported method UserCollectionMock.Set should have comment or be unexported (golint)
    • Line 18: warning: exported method UserCollectionMock.Get should have comment or be unexported (golint)
    • Line 27: warning: exported method UserCollectionMock.GetAllIDs should have comment or be unexported (golint)
    • Line 36: warning: exported method UserCollectionMock.Delete should have comment or be unexported (golint)
    • slack-spy-bot/messenger.go
    • Line 9: warning: exported type HandlerFunc should have comment or be unexported (golint)
    • Line 11: warning: exported type Messenger should have comment or be unexported (golint)
    • Line 19: warning: don't use underscores in Go names; type rtm_ should be rtm (golint)
    • Line 31: warning: exported function NewMessenger should have comment or be unexported (golint)
    • slack-spy-bot/messenger_mock.go
    • Line 7: warning: exported type MessengerMock should have comment or be unexported (golint)
    • Line 11: warning: exported method MessengerMock.SubscribeUserPresence should have comment or be unexported (golint)
    • Line 15: warning: exported method MessengerMock.GetUserPresence should have comment or be unexported (golint)
    • Line 24: warning: exported method MessengerMock.SendMessage should have comment or be unexported (golint)
    • Line 28: warning: exported method MessengerMock.Listen should have comment or be unexported (golint)

license100%

Checks whether your project has a LICENSE file.

No problems detected. Good job!


ineffassign27%

IneffAssign detects ineffectual assignments in Go code.

    • slack-spy-bot/database.go
    • Line 9: warning: cannot find package "." in: (ineffassign)
    • Line 6: warning: cannot find package "." in: (ineffassign)
    • Line 7: warning: cannot find package "." in: (ineffassign)
    • Line 6: warning: could not import google.golang.org/grpc/codes (invalid package name: "") (ineffassign)
    • Line 7: warning: could not import google.golang.org/grpc/status (invalid package name: "") (ineffassign)
    • Line 9: warning: could not import cloud.google.com/go/firestore (invalid package name: "") (ineffassign)
    • Line 6: warning: could not import google.golang.org/grpc/codes (invalid package name: "") (ineffassign)
    • Line 7: warning: could not import google.golang.org/grpc/status (invalid package name: "") (ineffassign)
    • Line 9: warning: could not import cloud.google.com/go/firestore (invalid package name: "") (ineffassign)
    • slack-spy-bot/bot.go
    • Line 8: warning: cannot find package "." in: (ineffassign)
    • Line 8: warning: could not import github.com/nlopes/slack (invalid package name: "") (ineffassign)
    • Line 8: warning: could not import github.com/nlopes/slack (invalid package name: "") (ineffassign)
    • slack-spy-bot/database_mock.go
    • Line 6: warning: cannot find package "." in: (ineffassign)
    • Line 6: warning: could not import github.com/stretchr/testify/mock (invalid package name: "") (ineffassign)
    • Line 14: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • Line 19: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • Line 28: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • Line 37: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • Line 6: warning: could not import github.com/stretchr/testify/mock (invalid package name: "") (ineffassign)
    • Line 14: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • Line 19: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • Line 28: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • Line 37: warning: m.Called undefined (type *UserCollectionMock has no field or method Called) (ineffassign)
    • slack-spy-bot/messenger_mock.go
    • Line 12: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • Line 16: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • Line 25: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • Line 29: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • Line 12: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • Line 16: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • Line 25: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • Line 29: warning: m.Called undefined (type *MessengerMock has no field or method Called) (ineffassign)
    • slack-spy-bot/router_mock.go
    • Line 15: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • Line 19: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • Line 23: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • Line 27: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • Line 15: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • Line 19: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • Line 23: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • Line 27: warning: m.Called undefined (type *RouterMock has no field or method Called) (ineffassign)
    • slack-spy-bot/bot_test.go
    • Line 7: warning: cannot find package "." in: (ineffassign)
    • Line 7: warning: could not import github.com/stretchr/testify/assert (invalid package name: "") (ineffassign)
    • Line 18: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 19: warning: messenger.On undefined (type *MessengerMock has no field or method On) (ineffassign)
    • Line 24: warning: users.AssertExpectations undefined (type *UserCollectionMock has no field or method AssertExpectations) (ineffassign)
    • Line 25: warning: messenger.AssertExpectations undefined (type *MessengerMock has no field or method AssertExpectations) (ineffassign)
    • Line 44: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 45: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 49: warning: messenger.On undefined (type *MessengerMock has no field or method On) (ineffassign)
    • Line 54: warning: users.AssertExpectations undefined (type *UserCollectionMock has no field or method AssertExpectations) (ineffassign)
    • Line 55: warning: messenger.AssertExpectations undefined (type *MessengerMock has no field or method AssertExpectations) (ineffassign)
    • Line 70: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 78: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 81: warning: messenger.On undefined (type *MessengerMock has no field or method On) (ineffassign)
    • Line 82: warning: messenger.On undefined (type *MessengerMock has no field or method On) (ineffassign)
    • Line 83: warning: messenger.On undefined (type *MessengerMock has no field or method On) (ineffassign)
    • Line 88: warning: users.AssertExpectations undefined (type *UserCollectionMock has no field or method AssertExpectations) (ineffassign)
    • Line 89: warning: messenger.AssertExpectations undefined (type *MessengerMock has no field or method AssertExpectations) (ineffassign)
    • Line 107: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 108: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 111: warning: users.On undefined (type *UserCollectionMock has no field or method On) (ineffassign)
    • Line 113: warning: messenger.On undefined (type *MessengerMock has no field or method On) (ineffassign)
    • Line 114: warning: messenger.On undefined (type *MessengerMock has no field or method On) (ineffassign)
    • Line 119: warning: users.AssertExpectations undefined (type *UserCollectionMock has no field or method AssertExpectations) (ineffassign)
    • Line 120: warning: messenger.AssertExpectations undefined (type *MessengerMock has no field or method AssertExpectations) (ineffassign)
    • slack-spy-bot/messenger_test.go
    • Line 16: warning: m.Called undefined (type *RTMMock has no field or method Called) (ineffassign)
    • Line 25: warning: m.Called undefined (type *RTMMock has no field or method Called) (ineffassign)
    • Line 29: warning: m.Called undefined (type *RTMMock has no field or method Called) (ineffassign)
    • Line 37: warning: rtm.On undefined (type *RTMMock has no field or method On) (ineffassign)
    • Line 46: warning: rtm.AssertExpectations undefined (type *RTMMock has no field or method AssertExpectations) (ineffassign)
    • Line 56: warning: rtm.On undefined (type *RTMMock has no field or method On) (ineffassign)
    • Line 72: warning: rtm.On undefined (type *RTMMock has no field or method On) (ineffassign)
    • Line 82: warning: rtm.AssertExpectations undefined (type *RTMMock has no field or method AssertExpectations) (ineffassign)
    • Line 90: warning: rtm.On undefined (type *RTMMock has no field or method On) (ineffassign)
    • Line 101: warning: router.On undefined (type *RouterMock has no field or method On) (ineffassign)
    • Line 106: warning: router.AssertExpectations undefined (type *RouterMock has no field or method AssertExpectations) (ineffassign)
    • Line 114: warning: rtm.On undefined (type *RTMMock has no field or method On) (ineffassign)
    • Line 125: warning: router.On undefined (type *RouterMock has no field or method On) (ineffassign)
    • Line 130: warning: router.AssertExpectations undefined (type *RouterMock has no field or method AssertExpectations) (ineffassign)
    • Line 138: warning: rtm.On undefined (type *RTMMock has no field or method On) (ineffassign)
    • Line 149: warning: router.AssertExpectations undefined (type *RouterMock has no field or method AssertExpectations) (ineffassign)

misspell100%

Misspell Finds commonly misspelled English words

No problems detected. Good job!