Files
miti99bot/renderer/scripts/api-smoke.js
T

51 lines
1.2 KiB
JavaScript

import {buildServer} from '../src/server.js';
const config = {
apiToken: 'smoke-token',
host: '127.0.0.1',
maxConcurrentRenders: 1,
maxOptionChars: 40,
maxOptions: 32,
port: 0,
requiresApiToken: true,
renderTimeoutMs: 30000,
};
const app = await buildServer({config, warmRemotionBundle: true});
try {
const response = await app.inject({
method: 'POST',
url: '/api/gif',
headers: {
authorization: 'Bearer smoke-token',
},
payload: {
durationMs: 3000,
fps: 12,
holdMs: 500,
options: ['alice', 'bob', 'carol', 'dave'],
size: 384,
theme: 'classic',
winnerIndex: 2,
},
});
if (response.statusCode !== 200) {
throw new Error(`Expected 200, got ${response.statusCode}: ${response.body}`);
}
const magic = response.rawPayload.subarray(0, 6).toString();
if (magic !== 'GIF89a') {
throw new Error(`Expected GIF89a header, got ${magic}`);
}
if (response.headers['x-wheel-winner-index'] !== '2') {
throw new Error(`Expected winner index 2, got ${response.headers['x-wheel-winner-index']}`);
}
console.log(`api-smoke: ${response.rawPayload.byteLength} bytes`);
} finally {
await app.close();
}