dndex/view/html_test.go

64 lines
1.2 KiB
Go

package view
import (
"context"
"encoding/json"
"fmt"
"local/whodunit/config"
"local/whodunit/storage"
"net/http"
"os"
"testing"
"time"
)
func TestHtml(t *testing.T) {
if len(os.Getenv("INTEGRATION")) > 0 {
t.Logf("skipping because $INTEGRATION unset")
return
}
os.Args = os.Args[:1]
g := storage.NewGraph()
ones := []storage.One{
storage.One{
ID: "A",
Know: []storage.One{storage.One{}},
},
storage.One{
ID: "B",
Know: []storage.One{storage.One{}},
},
}
ones[0].Know[0] = ones[1]
ones[0].Know[0].Know = nil
ones[0].Know[0].Relation = ":)"
ones[1].Know[0] = ones[0]
ones[1].Know[0].Know = nil
ones[1].Know[0].Relation = ":("
g.Insert(context.TODO(), ones[0])
g.Insert(context.TODO(), ones[1])
go func() {
if err := Html(g); err != nil {
t.Fatal(err)
}
}()
time.Sleep(time.Millisecond * 250)
resp, err := http.Get(fmt.Sprintf("http://localhost:%d/who?id=A&id=B", config.New().Port))
if err != nil {
t.Fatal(err)
}
defer resp.Body.Close()
var v interface{}
if err := json.NewDecoder(resp.Body).Decode(&v); err != nil {
t.Fatal(err)
}
b, err := json.MarshalIndent(v, "", " ")
if err != nil {
t.Fatal(err)
}
t.Logf("\n%s\n", b)
}