upup-react-file-uploader
Version:
36 lines (31 loc) • 1.06 kB
text/typescript
import { Page } from '@playwright/test'
export interface MockUploadApi {
getUploadCount: () => number
waitForUploads: (count: number) => Promise<void>
}
export async function setupMockUploadApi(page: Page): Promise<MockUploadApi> {
let uploadCount = 0
await page.route('**/api/upload**', async route => {
uploadCount++
await route.fulfill({
status: 200,
contentType: 'application/json',
body: JSON.stringify({
success: true,
key: `mock-upload-key-${uploadCount}`,
url: `https://mock-storage.com/file-${uploadCount}.png`,
}),
})
})
return {
getUploadCount: () => uploadCount,
waitForUploads: async (count: number) => {
const promises = Array.from({ length: count }, () =>
page.waitForResponse(
r => r.url().includes('/api/upload') && r.status() === 200,
),
)
await Promise.all(promises)
},
}
}