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.

110 lines
2.4 KiB

  1. package writeas
  2. import (
  3. "fmt"
  4. "strings"
  5. "testing"
  6. "time"
  7. )
  8. func TestGetCollection(t *testing.T) {
  9. wac := NewClient()
  10. res, err := wac.GetCollection("blog")
  11. if err != nil {
  12. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  13. } else {
  14. t.Logf("Collection: %+v", res)
  15. if res.Title != "write.as blog" {
  16. t.Errorf("Unexpected fetch results: %+v\n", res)
  17. }
  18. }
  19. }
  20. func TestGetCollectionPosts(t *testing.T) {
  21. wac := NewClient()
  22. res, err := wac.GetCollectionPosts("blog")
  23. if err != nil {
  24. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  25. } else {
  26. if len(*res) == 0 {
  27. t.Errorf("No posts returned!")
  28. }
  29. }
  30. }
  31. func TestGetCollectionPost(t *testing.T) {
  32. wac := NewClient()
  33. res, err := wac.GetCollectionPost("blog", "extending-write-as")
  34. if err != nil {
  35. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  36. }
  37. if res == nil {
  38. t.Errorf("No post returned!")
  39. }
  40. if len(res.Content) == 0 {
  41. t.Errorf("Post content is empty!")
  42. }
  43. }
  44. func TestGetUserCollections(t *testing.T) {
  45. wac := NewDevClient()
  46. _, err := wac.LogIn("demo", "demo")
  47. if err != nil {
  48. t.Fatalf("Unable to log in: %v", err)
  49. }
  50. defer wac.LogOut()
  51. res, err := wac.GetUserCollections()
  52. if err != nil {
  53. t.Errorf("Unexpected fetch results: %+v, err: %v\n", res, err)
  54. } else {
  55. t.Logf("User collections: %+v", res)
  56. if len(*res) == 0 {
  57. t.Errorf("No collections returned!")
  58. }
  59. }
  60. }
  61. func TestCreateAndDeleteCollection(t *testing.T) {
  62. wac := NewDevClient()
  63. _, err := wac.LogIn("demo", "demo")
  64. if err != nil {
  65. t.Fatalf("Unable to log in: %v", err)
  66. }
  67. defer wac.LogOut()
  68. now := time.Now().Unix()
  69. alias := fmt.Sprintf("test-collection-%v", now)
  70. c, err := wac.CreateCollection(&CollectionParams{
  71. Alias: alias,
  72. Title: fmt.Sprintf("Test Collection %v", now),
  73. })
  74. if err != nil {
  75. t.Fatalf("Unable to create collection %q: %v", alias, err)
  76. }
  77. if err := wac.DeleteCollection(c.Alias); err != nil {
  78. t.Fatalf("Unable to delete collection %q: %v", alias, err)
  79. }
  80. }
  81. func TestDeleteCollectionUnauthenticated(t *testing.T) {
  82. wac := NewDevClient()
  83. now := time.Now().Unix()
  84. alias := fmt.Sprintf("test-collection-does-not-exist-%v", now)
  85. err := wac.DeleteCollection(alias)
  86. if err == nil {
  87. t.Fatalf("Should not be able to delete collection %q unauthenticated.", alias)
  88. }
  89. if !strings.Contains(err.Error(), "Not authenticated") {
  90. t.Fatalf("Error message should be more informative: %v", err)
  91. }
  92. }