Personal Git forge.

Code git clone ssh://git.poy.ooo:6969/~poyo/farga ZIP
lib/hackatime/fetch_test.go / 1KiB #9405e6be
Raw
package hackatimeimport (	"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))	}}