357c2882ad
* refactor: apply biome formatting to Phase 1 packages Packages formatted: - packages/app-store-cli - packages/config - packages/dayjs - packages/debugging - packages/embeds/embed-react - packages/embeds/embed-snippet - packages/kysely - packages/platform/constants - packages/platform/utils - packages/testing - packages/tsconfig Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: restore non-null assertions in embed-snippet to fix type error Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: remove ESM import from CommonJS config file Biome incorrectly added 'import process from node:process' to a CommonJS file that uses require(). This breaks Jest which expects CommonJS syntax. The process global is already available in Node.js without explicit import. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * refactor: exclude packages/embeds from Phase 1 formatting Per user request, reverting all biome formatting changes in packages/embeds to handle separately. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> * fix: restore const enum for BookingLocations Biome changed 'const enum' to 'enum' which is a semantic change. Reverting to keep the PR purely formatting-only. Co-Authored-By: eunjae@cal.com <hey@eunjae.dev> --------- Co-authored-by: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
58 lines
1.7 KiB
JavaScript
58 lines
1.7 KiB
JavaScript
import { sleep } from "k6";
|
|
import { SharedArray } from "k6/data";
|
|
|
|
export const BASE_URL = __ENV.BASE_URL || "http://localhost:3000";
|
|
if (BASE_URL.includes("cal.com")) {
|
|
throw new Error("BLOCKED: Do not run against production domain");
|
|
}
|
|
|
|
export const SLEEP_DURATION = {
|
|
SHORT: 1,
|
|
MEDIUM: 3,
|
|
LONG: 5,
|
|
};
|
|
|
|
export const THRESHOLDS = {
|
|
HTTP_ERRORS: ["rate<0.01"],
|
|
|
|
RESPONSE_TIME: {
|
|
SMOKE: {
|
|
p95: ["p(95)<500"], // 95% of requests should be below 500ms
|
|
p99: ["p(99)<1000"], // 99% of requests should be below 1000ms
|
|
},
|
|
LOAD: {
|
|
p95: ["p(95)<1000"], // 95% of requests should be below 1000ms
|
|
p99: ["p(99)<2000"], // 99% of requests should be below 2000ms
|
|
},
|
|
STRESS: {
|
|
p95: ["p(95)<2000"], // 95% of requests should be below 2000ms
|
|
p99: ["p(99)<4000"], // 99% of requests should be below 4000ms
|
|
},
|
|
SPIKE: {
|
|
p95: ["p(95)<3000"], // 95% of requests should be below 3000ms
|
|
p99: ["p(99)<6000"], // 99% of requests should be below 6000ms
|
|
},
|
|
},
|
|
};
|
|
|
|
export const TEST_USERS = new SharedArray("users", () => [
|
|
{ username: __ENV.TEST_USER_FREE || "free", password: __ENV.TEST_PASSWORD_FREE || "free" },
|
|
{ username: __ENV.TEST_USER_PRO || "pro", password: __ENV.TEST_PASSWORD_PRO || "pro" },
|
|
]);
|
|
|
|
export function getRandomUser() {
|
|
return TEST_USERS[Math.floor(Math.random() * TEST_USERS.length)];
|
|
}
|
|
|
|
export function randomQueryParam() {
|
|
return `nocache=${Date.now()}`;
|
|
}
|
|
|
|
export function randomSleep(min = SLEEP_DURATION.SHORT, max = SLEEP_DURATION.MEDIUM) {
|
|
if (min > max) {
|
|
throw new Error("min cannot be greater than max");
|
|
}
|
|
const sleepTime = Math.random() * (max - min) + min;
|
|
sleep(sleepTime);
|
|
}
|