func ContextToken(ctx context.Context) *AuthToken {
	tok, ok := ctx.Value(contextKeyToken).(AuthToken)
	if !ok {
		return nil
	}
	return &tok
}
ContextToken will return a copy of the AuthToken from the given context.
package mockslack
import (
	"context"
	"net/http"
	"strings"
)
type contextKey int
const (
	contextKeyToken contextKey = iota
)
type AuthToken struct {
	ID     string
	Scopes []string
	User   string
	IsBot  bool
}
func WithToken(ctx context.Context, tok *AuthToken) context.Context {
	if tok == nil {
		return ctx
	}
	cpy := *tok
	cpy.Scopes = make([]string, len(tok.Scopes))
	copy(cpy.Scopes, tok.Scopes)
	return context.WithValue(ctx, contextKeyToken, cpy)
}