mirror of
https://github.com/readur/readur.git
synced 2026-01-14 10:40:13 -06:00
70 lines
2.9 KiB
TypeScript
70 lines
2.9 KiB
TypeScript
import { test, expect } from './fixtures/auth';
|
|
import { TEST_FILES, TIMEOUTS } from './utils/test-data';
|
|
import { TestHelpers } from './utils/test-helpers';
|
|
|
|
test.describe('Debug Upload', () => {
|
|
let helpers: TestHelpers;
|
|
|
|
test.beforeEach(async ({ authenticatedPage }) => {
|
|
helpers = new TestHelpers(authenticatedPage);
|
|
await authenticatedPage.goto('/upload');
|
|
await helpers.waitForLoadingToComplete();
|
|
});
|
|
|
|
test('should debug upload workflow', async ({ authenticatedPage: page }) => {
|
|
console.log('Starting upload debug test...');
|
|
|
|
// Find file input
|
|
const fileInput = page.locator('input[type="file"]').first();
|
|
console.log('Found file input');
|
|
|
|
// Upload a file
|
|
await fileInput.setInputFiles(TEST_FILES.test1);
|
|
console.log('File added to input');
|
|
|
|
// Wait a moment for file to be processed by dropzone
|
|
await page.waitForTimeout(1000);
|
|
|
|
// Log all button text on the page
|
|
const allButtons = await page.locator('button').allTextContents();
|
|
console.log('All buttons on page:', allButtons);
|
|
|
|
// Log all text content that might indicate upload state
|
|
const uploadTexts = await page.locator(':has-text("Upload"), :has-text("File"), :has-text("Progress")').allTextContents();
|
|
console.log('Upload-related text:', uploadTexts);
|
|
|
|
// Look for upload button specifically
|
|
const uploadButton = page.locator('button:has-text("Upload All"), button:has-text("Upload")');
|
|
const uploadButtonCount = await uploadButton.count();
|
|
console.log('Upload button count:', uploadButtonCount);
|
|
|
|
if (uploadButtonCount > 0) {
|
|
const uploadButtonText = await uploadButton.first().textContent();
|
|
console.log('Upload button text:', uploadButtonText);
|
|
|
|
// Click the upload button
|
|
console.log('Clicking upload button...');
|
|
await uploadButton.first().click();
|
|
|
|
// Wait and log state changes
|
|
for (let i = 0; i < 10; i++) {
|
|
await page.waitForTimeout(1000);
|
|
|
|
const currentTexts = await page.locator('body').textContent();
|
|
console.log(`After ${i+1}s: Page contains "progress": ${currentTexts?.toLowerCase().includes('progress')}`);
|
|
console.log(`After ${i+1}s: Page contains "success": ${currentTexts?.toLowerCase().includes('success')}`);
|
|
console.log(`After ${i+1}s: Page contains "complete": ${currentTexts?.toLowerCase().includes('complete')}`);
|
|
console.log(`After ${i+1}s: Page contains "uploaded": ${currentTexts?.toLowerCase().includes('uploaded')}`);
|
|
|
|
// Check for any status changes in specific areas
|
|
const uploadArea = page.locator('[role="main"], .upload-area, .dropzone').first();
|
|
if (await uploadArea.count() > 0) {
|
|
const uploadAreaText = await uploadArea.textContent();
|
|
console.log(`Upload area content: ${uploadAreaText?.substring(0, 200)}...`);
|
|
}
|
|
}
|
|
} else {
|
|
console.log('No upload button found!');
|
|
}
|
|
});
|
|
}); |