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.

107 lines
2.0 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 TestPinPost(t *testing.T) {
  68. dwac := NewDevClient()
  69. _, err := dwac.LogIn("demo", "demo")
  70. if err != nil {
  71. t.Fatalf("Unable to log in: %v", err)
  72. }
  73. defer dwac.LogOut()
  74. err = dwac.PinPost("tester", &PinnedPostParams{ID: "olx6uk7064heqltf"})
  75. if err != nil {
  76. t.Fatalf("Pin failed: %v", err)
  77. }
  78. }
  79. func ExampleClient_CreatePost() {
  80. c := NewClient()
  81. // Publish a post
  82. p, err := c.CreatePost(&PostParams{
  83. Title: "Title!",
  84. Content: "This is a post.",
  85. Font: "sans",
  86. })
  87. if err != nil {
  88. fmt.Printf("Unable to create: %v", err)
  89. return
  90. }
  91. fmt.Printf("%s", p.Content)
  92. // Output: This is a post.
  93. }