uppy/packages/@uppy/url/vitest.setup.ts
Mikael Finstad d31c90e443
Run biome check on main (#5896)
this time on main
closes #5891

also: fix a11y tabIndex (key event handler)
2025-08-11 10:06:21 +02:00

70 lines
1.9 KiB
TypeScript

import { spawn } from 'node:child_process'
import { createServer } from 'node:http'
import { dirname, join } from 'node:path'
import { setTimeout } from 'node:timers/promises'
import { fileURLToPath } from 'node:url'
import type { TestProject } from 'vitest/node'
const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)
const mockServerPort = 62450
export default async function setup(project: TestProject) {
const mockServer = createServer((req, res) => {
const fileName = `DALL·E IMG_9078 - 学中文 🤑`
if (req.url === '/file-with-content-disposition') {
res.writeHead(200, {
'content-disposition': `attachment; filename="ASCII-name.zip"; filename*=UTF-8''${encodeURIComponent(
fileName,
)}`,
'content-type': 'image/jpeg',
'content-length': '86500',
})
if (req.method === 'HEAD') {
res.end()
} else {
res.end('mock image data')
}
} else if (req.url === '/file-no-headers') {
// Explicitly remove any default content-type
res.removeHeader('content-type')
res.writeHead(200, {})
if (req.method === 'HEAD') {
res.end()
} else {
res.end('mock file content')
}
} else {
res.writeHead(404)
res.end()
}
})
await new Promise<void>((resolve) => {
mockServer.listen(mockServerPort, 'localhost', resolve)
})
const companionProcess = spawn(
'node',
[join(__dirname, '../../@uppy/companion/test/with-load-balancer.mjs')],
{
stdio: 'inherit',
cwd: join(__dirname, '../../../..'),
env: {
...process.env,
// Pass the mock server URL to companion if needed
MOCK_SERVER_URL: `http://localhost:${mockServerPort}`,
},
},
)
await setTimeout(1000)
return () => {
companionProcess.kill()
mockServer.close()
}
}