mirror of
https://github.com/zhom/donutbrowser.git
synced 2026-04-22 20:06:18 +02:00
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import { ListBucketsCommand, S3Client } from "@aws-sdk/client-s3";
|
|
|
|
export const TEST_SYNC_TOKEN = "test-sync-token";
|
|
export const TEST_S3_ENDPOINT = "http://127.0.0.1:8987";
|
|
|
|
export function configureTestEnv() {
|
|
process.env.SYNC_TOKEN ||= TEST_SYNC_TOKEN;
|
|
process.env.S3_ENDPOINT ||= TEST_S3_ENDPOINT;
|
|
process.env.S3_ACCESS_KEY_ID ||= "minioadmin";
|
|
process.env.S3_SECRET_ACCESS_KEY ||= "minioadmin";
|
|
process.env.S3_BUCKET ||= "donut-sync-test";
|
|
process.env.S3_FORCE_PATH_STYLE ||= "true";
|
|
}
|
|
|
|
export async function waitForTestS3(timeoutMs = 30_000) {
|
|
const deadline = Date.now() + timeoutMs;
|
|
const s3Client = new S3Client({
|
|
endpoint: TEST_S3_ENDPOINT,
|
|
region: "us-east-1",
|
|
credentials: {
|
|
accessKeyId: "minioadmin",
|
|
secretAccessKey: "minioadmin",
|
|
},
|
|
forcePathStyle: true,
|
|
});
|
|
|
|
while (Date.now() < deadline) {
|
|
try {
|
|
await s3Client.send(new ListBucketsCommand({}));
|
|
return;
|
|
} catch {}
|
|
|
|
await new Promise((resolve) => setTimeout(resolve, 500));
|
|
}
|
|
|
|
throw new Error(`Timed out waiting for S3 at ${TEST_S3_ENDPOINT}`);
|
|
}
|