tests.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. // SPDX-FileCopyrightText: Copyright The Miniflux Authors. All rights reserved.
  2. // SPDX-License-Identifier: Apache-2.0
  3. //go:build integration
  4. // +build integration
  5. package tests
  6. import (
  7. "math/rand"
  8. "strconv"
  9. "strings"
  10. "testing"
  11. miniflux "miniflux.app/v2/client"
  12. )
  13. const (
  14. testBaseURL = "http://127.0.0.1:8080/"
  15. testAdminUsername = "admin"
  16. testAdminPassword = "test123"
  17. testStandardPassword = "secret"
  18. testFeedURL = "https://miniflux.app/feed.xml"
  19. testFeedTitle = "Miniflux"
  20. testSubscriptionTitle = "Miniflux Releases"
  21. testWebsiteURL = "https://miniflux.app"
  22. )
  23. func getRandomUsername() string {
  24. var suffix []string
  25. for i := 0; i < 10; i++ {
  26. suffix = append(suffix, strconv.Itoa(rand.Intn(1000)))
  27. }
  28. return "user" + strings.Join(suffix, "")
  29. }
  30. func createClient(t *testing.T) *miniflux.Client {
  31. username := getRandomUsername()
  32. client := miniflux.New(testBaseURL, testAdminUsername, testAdminPassword)
  33. _, err := client.CreateUser(username, testStandardPassword, false)
  34. if err != nil {
  35. t.Fatal(err)
  36. }
  37. return miniflux.New(testBaseURL, username, testStandardPassword)
  38. }
  39. func createFeed(t *testing.T, client *miniflux.Client) (*miniflux.Feed, *miniflux.Category) {
  40. categories, err := client.Categories()
  41. if err != nil {
  42. t.Fatal(err)
  43. }
  44. feedID, err := client.CreateFeed(&miniflux.FeedCreationRequest{
  45. FeedURL: testFeedURL,
  46. CategoryID: categories[0].ID,
  47. })
  48. if err != nil {
  49. t.Fatal(err)
  50. }
  51. if feedID == 0 {
  52. t.Fatalf(`Invalid feed ID, got %q`, feedID)
  53. }
  54. feed, err := client.Feed(feedID)
  55. if err != nil {
  56. t.Fatal(err)
  57. }
  58. return feed, categories[0]
  59. }