diff options
Diffstat (limited to 'frontend/tests/crawl.spec.ts')
| -rw-r--r-- | frontend/tests/crawl.spec.ts | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/frontend/tests/crawl.spec.ts b/frontend/tests/crawl.spec.ts new file mode 100644 index 0000000..175a764 --- /dev/null +++ b/frontend/tests/crawl.spec.ts @@ -0,0 +1,32 @@ +import { test, expect } from '@playwright/test'; + +test.describe('Crawl Integration', () => { + test('should add a feed and see items after crawl', async ({ page }) => { + const mockFeedUrl = 'http://localhost:9090/mock_feed.xml'; + + // 1. Login and go to Settings + await page.goto('/v2/settings'); + + // 2. Add the mock feed + await page.fill('input[type="url"]', mockFeedUrl); + await page.click('text=Add Feed'); + + // Wait for feed to be added + await expect(page.getByText(mockFeedUrl)).toBeVisible({ timeout: 5000 }); + + // 3. Trigger Crawl + const crawlButton = page.getByRole('button', { name: /crawl/i }); + await expect(crawlButton).toBeVisible(); + + // Handle the alert + page.on('dialog', dialog => dialog.accept()); + await crawlButton.click(); + + // 4. Go to Home and check for items + await page.goto('/v2/'); + + // The mock feed has "Mock Item 1" and "Mock Item 2" + await expect(page.getByText('Mock Item 1')).toBeVisible({ timeout: 10000 }); + await expect(page.getByText('Mock Item 2')).toBeVisible({ timeout: 10000 }); + }); +}); |
