Package ejabberd facilitates integration testing against Ejabberd.



    This section is empty.


    This section is empty.


    func Component

    func Component(domain, secret string) integration.Option

      Component adds an external component with the given domain and secret to the config file.

      func ConfigFile

      func ConfigFile(cfg Config) integration.Option

        ConfigFile is an option that can be used to write a temporary Ejabberd config file. This will overwrite the existing config file and make most of the other options in this package noops. This option only exists for the rare occasion that you need complete control over the config file.

        func CreateUser

        func CreateUser(ctx context.Context, addr, pass string) integration.Option

          CreateUser returns an option that calls ejabberdctl to create a user. It is equivalent to calling: Ctl(ctx, "register", "localpart", "domainpart", "password") except that it also configures the underlying Cmd to know about the user.

          func Ctl

          func Ctl(ctx context.Context, args ...string) integration.Option

            Ctl returns an option that calls ejabberdctl with the provided args after the config has been written. It automatically points ejabberdctl at the config file path.

            func ListenC2S

            func ListenC2S() integration.Option

              ListenC2S listens for client-to-server (c2s) connections on a Unix domain socket.

              func ListenS2S

              func ListenS2S() integration.Option

                ListenS2S listens for server-to-server (s2s) connections on a Unix domain socket.

                func New

                func New(ctx context.Context, opts ...integration.Option) (*integration.Cmd, error)

                  New creates a new, unstarted, ejabberd daemon.

                  The provided context is used to kill the process (by calling os.Process.Kill) if the context becomes done before the command completes on its own.

                  func Test

                    Test starts an Ejabberd instance and returns a function that runs f as a subtest using t.Run. Multiple calls to the returned function will result in uniquely named subtests. When all subtests have completed, the daemon is stopped.

                    func VHost

                    func VHost(hosts ...string) integration.Option

                      VHost configures one or more virtual hosts. The default if this option is not provided is to create a single vhost called "localhost" and create a self-signed cert for it (if VHost is specified certs must be manually created).

                      func WebSocket

                      func WebSocket() integration.Option

                        WebSocket listens for WebSocket connections.


                        type Config

                        type Config struct {
                        	VHosts     []string
                        	C2SSocket  string
                        	S2SSocket  string
                        	CompSocket string
                        	HTTPSocket string
                        	Component  map[string]string

                          Config contains options that can be written to a Prosody config file.