Files
kopia/internal/testutil/serverparameters.go
Jarek Kowalski 9cad0edb53 test(ui): added end-to-end HTML UI test (#1686)
* test(general): refactored parsing of server output

* test(ui): added experimental end-to-end test using chromedp
2022-01-29 01:34:45 -08:00

43 lines
1.2 KiB
Go

package testutil
import "strings"
// Pattern in stderr that `kopia server` uses to pass ephemeral data.
const (
serverOutputAddress = "SERVER ADDRESS: "
serverOutputCertSHA256 = "SERVER CERT SHA256: "
serverOutputPassword = "SERVER PASSWORD: "
serverOutputControlPassword = "SERVER CONTROL PASSWORD: "
)
// ServerParameters encapsulates parameters captured by processing stderr of
// 'kopia server start'.
type ServerParameters struct {
BaseURL string
SHA256Fingerprint string
Password string
ServerControlPassword string
}
// ProcessOutput processes output lines from a server that's starting up.
func (s *ServerParameters) ProcessOutput(l string) bool {
if strings.HasPrefix(l, serverOutputAddress) {
s.BaseURL = strings.TrimPrefix(l, serverOutputAddress)
return false
}
if strings.HasPrefix(l, serverOutputCertSHA256) {
s.SHA256Fingerprint = strings.TrimPrefix(l, serverOutputCertSHA256)
}
if strings.HasPrefix(l, serverOutputPassword) {
s.Password = strings.TrimPrefix(l, serverOutputPassword)
}
if strings.HasPrefix(l, serverOutputControlPassword) {
s.ServerControlPassword = strings.TrimPrefix(l, serverOutputControlPassword)
}
return true
}