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) }