Go client for the Write.as API https://developers.write.as
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

93 lines
1.7 KiB

  1. package writeas
  2. import (
  3. "testing"
  4. "fmt"
  5. "strings"
  6. )
  7. func TestCreatePost(t *testing.T) {
  8. wac := NewClient()
  9. p, err := wac.CreatePost(&PostParams{
  10. Title: "Title!",
  11. Content: "This is a post.",
  12. Font: "sans",
  13. })
  14. if err != nil {
  15. t.Errorf("Post create failed: %v", err)
  16. return
  17. }
  18. t.Logf("Post created: %+v", p)
  19. token := p.Token
  20. // Update post
  21. p, err = wac.UpdatePost(&PostParams{
  22. OwnedPostParams: OwnedPostParams{
  23. ID: p.ID,
  24. Token: token,
  25. },
  26. Content: "Now it's been updated!",
  27. })
  28. if err != nil {
  29. t.Errorf("Post update failed: %v", err)
  30. return
  31. }
  32. t.Logf("Post updated: %+v", p)
  33. // Delete post
  34. err = wac.DeletePost(&PostParams{
  35. OwnedPostParams: OwnedPostParams{
  36. ID: p.ID,
  37. Token: token,
  38. },
  39. })
  40. if err != nil {
  41. t.Errorf("Post delete failed: %v", err)
  42. return
  43. }
  44. t.Logf("Post deleted!")
  45. }
  46. func TestGetPost(t *testing.T) {
  47. dwac := NewDevClient()
  48. res, err := dwac.GetPost("zekk5r9apum6p")
  49. if err != nil {
  50. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  51. } else {
  52. t.Logf("Post: %+v", res)
  53. if res.Content != "This is a post." {
  54. t.Errorf("Unexpected fetch results: %+v\n", res)
  55. }
  56. }
  57. wac := NewClient()
  58. res, err = wac.GetPost("3psnxyhqxy3hq")
  59. if err != nil {
  60. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  61. } else {
  62. if !strings.HasPrefix(res.Content, " Write.as Blog") {
  63. t.Errorf("Unexpected fetch results: %+v\n", res)
  64. }
  65. }
  66. }
  67. func ExampleClient_CreatePost() {
  68. c := NewClient()
  69. // Publish a post
  70. p, err := c.CreatePost(&PostParams{
  71. Title: "Title!",
  72. Content: "This is a post.",
  73. Font: "sans",
  74. })
  75. if err != nil {
  76. fmt.Printf("Unable to create: %v", err)
  77. return
  78. }
  79. fmt.Printf("%s", p.Content)
  80. // Output: This is a post.
  81. }