func TestGetPageForPlatform(t *testing.T) { server := testServer{statusCode: 200, response: "DO IT BRO"} var resp entity.Page var err error server.Intercept(func() { resp, err = repository.Page("tldr", "osx") }) defer resp.Close() if err != nil { t.Error(err) } if expected := "/osx/tldr.md"; server.originalRequest.URL.Path != expected { t.Errorf("Page requested from wrong url: %s", server.originalRequest.URL.Path) } if body, _ := ioutil.ReadAll(resp.Reader()); string(body) != "DO IT BRO" { t.Errorf("Read wrong body: %s") } }
func run() error { if len(os.Args) <= 1 { return errors.New("Usage: tldr <command>") } usr, err := user.Current() if err != nil { return err } if usr.HomeDir == "" { return errors.New("Can't load user's home folder path") } var repository entity.Repository repository = remote.NewRemoteRepository(remoteAddress) repository = cache.NewFileSystemCacheRepository(repository, path.Join(usr.HomeDir, ".tldr"), time.Hour*24) repository = tldr.NewIndexCheckerRepository(repository) cmd := os.Args[1] platform := runtime.GOOS switch platform { case "darwin": platform = "osx" } var page entity.Page for _, platform := range []string{platform, "common"} { page, err = repository.Page(cmd, platform) if err != nil { continue } defer page.Close() fmt.Println(tldr.Render(page.Reader())) return nil } return err }