Skip to content

Commit

Permalink
Merge pull request #109 from vania-pooh/master
Browse files Browse the repository at this point in the history
Ping API and Golang 1.10.x
  • Loading branch information
aandryashin authored May 31, 2018
2 parents 275c733 + 6f47144 commit 06a67cf
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 17 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ vendor/*/
bindata_assetfs.go
selenoid-ui
data
coverage.txt

.DS_Store
dist/**
Expand Down
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ services:

script:
- go generate ./web ./...
- ./travis/coverage.sh
- go test -race -v -coverprofile=coverage.txt -covermode=atomic ./...
- gox -os "linux darwin windows" -arch "amd64" -osarch="windows/386" -output "dist/{{.Dir}}_{{.OS}}_{{.Arch}}" -ldflags "-X main.buildStamp=`date -u '+%Y-%m-%d_%I:%M:%S%p'` -X main.gitRevision=`git describe --tags || git rev-parse HEAD`"
- GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -ldflags "-X main.buildStamp=`date -u '+%Y-%m-%d_%I:%M:%S%p'` -X main.gitRevision=`git describe --tags || git rev-parse HEAD`" # for docker

Expand All @@ -21,7 +21,7 @@ before_install:
- rsync -az ${TRAVIS_BUILD_DIR}/ $HOME/gopath/src/github.com/${TRAVIS_REPO_SLUG}/
- export TRAVIS_BUILD_DIR=$HOME/gopath/src/github.com/${TRAVIS_REPO_SLUG}
- cd $HOME/gopath/src/github.com/${TRAVIS_REPO_SLUG}
- eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.9 bash)"
- eval "$(curl -sL https://raw.githubusercontent.com/travis-ci/gimme/master/gimme | GIMME_GO_VERSION=1.10.x bash)"

install:
- go get -u github.com/jteeuwen/go-bindata/...
Expand Down
12 changes: 12 additions & 0 deletions main.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package main

import (
"context"
"encoding/json"
"flag"
"fmt"
"github.com/aerokube/selenoid-ui/selenoid"
Expand All @@ -24,6 +25,8 @@ var (
selenoidUri string
period time.Duration

startTime = time.Now()

version bool
gitRevision = "HEAD"
buildStamp = "unknown"
Expand All @@ -48,9 +51,18 @@ func mux(sse *sse.SseBroker) http.Handler {
websocketproxy.NewProxy(ws).ServeHTTP(w, r)
log.Printf("[WS_PROXY] [%s] [CLOSED]", r.URL.Path)
})
mux.HandleFunc("/ping", ping)
return mux
}

func ping(w http.ResponseWriter, _ *http.Request) {
w.Header().Add("Content-Type", "application/json")
json.NewEncoder(w).Encode(struct {
Uptime string `json:"uptime"`
Version string `json:"version"`
}{time.Since(startTime).String(), gitRevision})
}

func showVersion() {
fmt.Printf("Git Revision: %s\n", gitRevision)
fmt.Printf("UTC Build Time: %s\n", buildStamp)
Expand Down
39 changes: 36 additions & 3 deletions main_test.go
Original file line number Diff line number Diff line change
@@ -1,18 +1,51 @@
package main

import (
"encoding/json"
. "github.com/aandryashin/matchers"
. "github.com/aandryashin/matchers/httpresp"
"github.com/aerokube/util/sse"
"io/ioutil"
"net/http"
"net/http/httptest"
"testing"
)

func TestRootLoads(t *testing.T) {
var (
srv *httptest.Server
)

func init() {
broker := sse.NewSseBroker()
srv := httptest.NewServer(mux(broker))
resp, err := http.Get(srv.URL + "/")
srv = httptest.NewServer(mux(broker))
gitRevision = "test-revision"
}

func withUrl(path string) string {
return srv.URL + path
}

func TestRootLoads(t *testing.T) {
resp, err := http.Get(withUrl("/"))
AssertThat(t, err, Is{nil})
AssertThat(t, resp, Code{200})
}

func TestPing(t *testing.T) {
rsp, err := http.Get(withUrl("/ping"))

AssertThat(t, err, Is{nil})
AssertThat(t, rsp, Code{http.StatusOK})
AssertThat(t, rsp.Body, Is{Not{nil}})

var data map[string]interface{}
bt, readErr := ioutil.ReadAll(rsp.Body)
AssertThat(t, readErr, Is{nil})
jsonErr := json.Unmarshal(bt, &data)
AssertThat(t, jsonErr, Is{nil})
_, hasUptime := data["uptime"]
AssertThat(t, hasUptime, Is{true})
version, hasVersion := data["version"]
AssertThat(t, hasVersion, Is{true})
AssertThat(t, version, EqualTo{"test-revision"})
}
12 changes: 0 additions & 12 deletions travis/coverage.sh

This file was deleted.

0 comments on commit 06a67cf

Please sign in to comment.