focalboard/server/web/webserver_test.go
Miguel de la Cruz 4b0fb92fba
Multi product architecture (#3381)
- provides support for compiling Boards directly into the Mattermost suite server
- a ServicesAPI interface replaces the PluginAPI to allow for implementations coming from pluginAPI and suite server.
- a new product package provides a place to register Boards as a suite product and handles life-cycle events
- a new boards package replaces much of the mattermost-plugin logic, allowing this to be shared between plugin and product
- Boards now uses module workspaces; run make setup-go-work
2022-07-18 13:21:57 -04:00

100 lines
3.2 KiB
Go

package web
import (
"testing"
"github.com/stretchr/testify/require"
"github.com/mattermost/mattermost-server/v6/shared/mlog"
)
func Test_NewServer(t *testing.T) {
tests := []struct {
name string
rootPath string
serverRoot string
ssl bool
port int
localOnly bool
logger mlog.LoggerIFace
expectedBaseURL string
expectedServerAddr string
}{
{
name: "should return server with given properties",
rootPath: "./test/path/to/root",
serverRoot: "https://some-fake-server.com/fake-url",
ssl: false,
port: 9999, // fake port number
localOnly: false,
logger: &mlog.Logger{},
expectedBaseURL: "/fake-url",
expectedServerAddr: ":9999",
},
{
name: "should return local server with given properties",
rootPath: "./test/path/to/root",
serverRoot: "https://some-fake-server.com/fake-url",
ssl: false,
port: 3000, // fake port number
localOnly: true,
logger: &mlog.Logger{},
expectedBaseURL: "/fake-url",
expectedServerAddr: "localhost:3000",
},
{
name: "should match Server properties when ssl true",
rootPath: "./test/path/to/root",
serverRoot: "https://some-fake-server.com/fake-url",
ssl: true,
port: 8000, // fake port number
localOnly: false,
logger: &mlog.Logger{},
expectedBaseURL: "/fake-url",
expectedServerAddr: ":8000",
},
{
name: "should return local server when ssl true",
rootPath: "./test/path/to/root",
serverRoot: "https://localhost:8080/fake-url",
ssl: true,
port: 9999, // fake port number
localOnly: true,
logger: &mlog.Logger{},
expectedBaseURL: "/fake-url",
expectedServerAddr: "localhost:9999",
},
{
name: "should return '/' as base url is not good!",
rootPath: "",
serverRoot: "https://localhost:8080/#!@$@#@",
ssl: true,
port: 9999, // fake port number
localOnly: true,
logger: &mlog.Logger{},
expectedBaseURL: "/",
expectedServerAddr: "localhost:9999",
},
}
for _, test := range tests {
t.Run(test.name, func(t *testing.T) {
ws := NewServer(test.rootPath, test.serverRoot, test.port, test.ssl, test.localOnly, test.logger)
require.NotNil(t, ws, "The webserver object is nil!")
require.Equal(t, test.expectedBaseURL, ws.baseURL, "baseURL does not match")
require.Equal(t, test.rootPath, ws.rootPath, "rootPath does not match")
require.Equal(t, test.port, ws.port, "rootPath does not match")
require.Equal(t, test.ssl, ws.ssl, "logger pointer does not match")
require.Equal(t, test.logger, ws.logger, "logger pointer does not match")
if test.localOnly == true {
require.Equal(t, test.expectedServerAddr, ws.Server.Addr, "localhost address not as matching!")
} else {
require.Equal(t, test.expectedServerAddr, ws.Server.Addr, "server address not matching!")
}
})
}
}