hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 9c782d5147bfea0dd85cf3374f598f0176f204eb
parent 14c35c8a56c4dc9a1ee0053e9ff976be7715ba99
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Thu, 12 Apr 2018 09:31:53 +0200

commands: Fix failing Travis server test

Diffstat:
Mcommands/server.go | 12+++---------
Mcommands/server_test.go | 13++++++-------
2 files changed, 9 insertions(+), 16 deletions(-)
diff --git a/commands/server.go b/commands/server.go
@@ -41,8 +41,6 @@ import (
 type serverCmd struct {
 	// Can be used to stop the server. Useful in tests
 	stop <-chan bool
-	// Can be used to receive notification about when the server is started. Useful in tests.
-	started chan<- bool
 
 	disableLiveReload bool
 	navigateToChanged bool
@@ -60,11 +58,11 @@ type serverCmd struct {
 }
 
 func newServerCmd() *serverCmd {
-	return newServerCmdSignaled(nil, nil)
+	return newServerCmdSignaled(nil)
 }
 
-func newServerCmdSignaled(stop <-chan bool, started chan<- bool) *serverCmd {
-	cc := &serverCmd{stop: stop, started: started}
+func newServerCmdSignaled(stop <-chan bool) *serverCmd {
+	cc := &serverCmd{stop: stop}
 
 	cc.baseBuilderCmd = newBuilderCmd(&cobra.Command{
 		Use:     "server",
@@ -400,10 +398,6 @@ func (c *commandeer) serve(s *serverCmd) error {
 		}()
 	}
 
-	if s.started != nil {
-		s.started <- true
-	}
-
 	jww.FEEDBACK.Println("Press Ctrl+C to stop")
 
 	if s.stop != nil {
diff --git a/commands/server_test.go b/commands/server_test.go
@@ -38,9 +38,9 @@ func TestServer(t *testing.T) {
 		os.RemoveAll(dir)
 	}()
 
-	stop, started := make(chan bool), make(chan bool)
+	stop := make(chan bool)
 
-	scmd := newServerCmdSignaled(stop, started)
+	scmd := newServerCmdSignaled(stop)
 
 	cmd := scmd.getCommand()
 	cmd.SetArgs([]string{"-s=" + dir, fmt.Sprintf("-p=%d", port)})
@@ -50,11 +50,10 @@ func TestServer(t *testing.T) {
 		assert.NoError(err)
 	}()
 
-	select {
-	case <-started:
-	case <-time.After(2 * time.Second):
-		t.Fatal("server start took too long")
-	}
+	// There is no way to know exactly when the server is ready for connections.
+	// We could improve by something like https://golang.org/pkg/net/http/httptest/#Server
+	// But for now, let us sleep and pray!
+	time.Sleep(2 * time.Second)
 
 	resp, err := http.Get("http://localhost:1331/")
 	assert.NoError(err)