Lightweight and easily self-hostable Git forge. git.poy.ooo
git-forge selfhosting homebrew
Something went wrong. Try again.
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061package hackatime
import ( "testing")
func TestParseUser(t *testing.T) { body := []byte(`{"id": 42, "slack_id": "U1234", "emails": ["poyo@example.com"]}`)
user, err := parseUser(body) if err != nil { t.Fatalf("parseUser: %v", err) } if user.ID != 42 { t.Errorf("ID = %d, want 42", user.ID) } if user.SlackID != "U1234" { t.Errorf("SlackID = %q, want U1234", user.SlackID) } if len(user.Emails) != 1 || user.Emails[0] != "poyo@example.com" { t.Errorf("Emails = %v, want [poyo@example.com]", user.Emails) }}
func TestParseUserInvalid(t *testing.T) { if _, err := parseUser([]byte("not json")); err == nil { t.Error("parseUser(bad json) = nil error, want error") }}
func TestParseProjects(t *testing.T) { body := []byte(`{"projects": [ {"name": "farga", "total_seconds": 3600}, {"name": "website", "total_seconds": 90} ]}`)
projects, err := parseProjects(body) if err != nil { t.Fatalf("parseProjects: %v", err) } if len(projects) != 2 { t.Fatalf("parseProjects returned %d projects, want 2", len(projects)) } if projects[0].Name != "farga" || projects[0].TotalSeconds != 3600 { t.Errorf("projects[0] = %+v, want farga/3600", projects[0]) } if projects[1].Name != "website" || projects[1].TotalSeconds != 90 { t.Errorf("projects[1] = %+v, want website/90", projects[1]) }}
func TestParseProjectsEmpty(t *testing.T) { projects, err := parseProjects([]byte(`{"projects": []}`)) if err != nil { t.Fatalf("parseProjects: %v", err) } if len(projects) != 0 { t.Errorf("parseProjects returned %d projects, want 0", len(projects)) }}