diff options
Diffstat (limited to 'internal/api/api_integration_test.go')
-rw-r--r-- | internal/api/api_integration_test.go | 112 |
1 files changed, 112 insertions, 0 deletions
diff --git a/internal/api/api_integration_test.go b/internal/api/api_integration_test.go index c4bef142..3fd98119 100644 --- a/internal/api/api_integration_test.go +++ b/internal/api/api_integration_test.go @@ -2044,6 +2044,118 @@ func TestGetGlobalEntriesEndpoint(t *testing.T) { } } +func TestUpdateEnclosureEndpoint(t *testing.T) { + testConfig := newIntegrationTestConfig() + if !testConfig.isConfigured() { + t.Skip(skipIntegrationTestsMessage) + } + + adminClient := miniflux.NewClient(testConfig.testBaseURL, testConfig.testAdminUsername, testConfig.testAdminPassword) + + regularTestUser, err := adminClient.CreateUser(testConfig.genRandomUsername(), testConfig.testRegularPassword, false) + if err != nil { + t.Fatal(err) + } + defer adminClient.DeleteUser(regularTestUser.ID) + + regularUserClient := miniflux.NewClient(testConfig.testBaseURL, regularTestUser.Username, testConfig.testRegularPassword) + + feedID, err := regularUserClient.CreateFeed(&miniflux.FeedCreationRequest{ + FeedURL: testConfig.testFeedURL, + }) + + if err != nil { + t.Fatal(err) + } + + result, err := regularUserClient.FeedEntries(feedID, nil) + if err != nil { + t.Fatalf(`Failed to get entries: %v`, err) + } + + var enclosure *miniflux.Enclosure + + for _, entry := range result.Entries { + if len(entry.Enclosures) > 0 { + enclosure = entry.Enclosures[0] + break + } + } + + if enclosure == nil { + t.Skip(`Skipping test, missing enclosure in feed.`) + } + + err = regularUserClient.UpdateEnclosure(enclosure.ID, &miniflux.EnclosureUpdateRequest{ + MediaProgression: 20, + }) + + if err != nil { + t.Fatal(err) + } + + updatedEnclosure, err := regularUserClient.Enclosure(enclosure.ID) + + if err != nil { + t.Fatal(err) + } + + if updatedEnclosure.MediaProgression != 20 { + t.Fatalf(`Failed to update media_progression, expected %d but got %d`, 20, updatedEnclosure.MediaProgression) + } +} + +func TestGetEnclosureEndpoint(t *testing.T) { + testConfig := newIntegrationTestConfig() + if !testConfig.isConfigured() { + t.Skip(skipIntegrationTestsMessage) + } + + adminClient := miniflux.NewClient(testConfig.testBaseURL, testConfig.testAdminUsername, testConfig.testAdminPassword) + + regularTestUser, err := adminClient.CreateUser(testConfig.genRandomUsername(), testConfig.testRegularPassword, false) + if err != nil { + t.Fatal(err) + } + defer adminClient.DeleteUser(regularTestUser.ID) + + regularUserClient := miniflux.NewClient(testConfig.testBaseURL, regularTestUser.Username, testConfig.testRegularPassword) + + feedID, err := regularUserClient.CreateFeed(&miniflux.FeedCreationRequest{ + FeedURL: testConfig.testFeedURL, + }) + if err != nil { + t.Fatal(err) + } + + result, err := regularUserClient.FeedEntries(feedID, nil) + if err != nil { + t.Fatalf(`Failed to get entries: %v`, err) + } + + var expectedEnclosure *miniflux.Enclosure + + for _, entry := range result.Entries { + if len(entry.Enclosures) > 0 { + expectedEnclosure = entry.Enclosures[0] + break + } + } + + if expectedEnclosure == nil { + t.Skip(`Skipping test, missing enclosure in feed.`) + } + + enclosure, err := regularUserClient.Enclosure(expectedEnclosure.ID) + + if err != nil { + t.Fatal(err) + } + + if enclosure.ID != expectedEnclosure.ID { + t.Fatalf(`Invalid enclosureID, got %d while expecting %d`, enclosure.ID, expectedEnclosure.ID) + } +} func TestGetEntryEndpoints(t *testing.T) { testConfig := newIntegrationTestConfig() if !testConfig.isConfigured() { |