Files
upstream-rocketchat/apps/meteor/tests/data/mock-server.helper.ts
upstream-mirror 30810eecd7
Some checks failed
Create issues from TODOs / todos (push) Failing after 3s
Close inactive issues / close-issues (push) Has been cancelled
Deploy GitHub Pages / deploy-preview (push) Has been cancelled
CI / ⚙️ Variables Setup (push) Has been cancelled
CI / ⚙️ Test Guard (push) Has been cancelled
CI / 🚀 Notify external services - draft (push) Has been cancelled
CI / 📦 Build Packages (push) Has been cancelled
CI / 📦 Meteor Build (coverage) (push) Has been cancelled
CI / 📦 Meteor Build (production) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [account-service presence-service omnichannel-transcript-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [authorization-service queue-worker-service ddp-streamer-service], fips) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Build Docker (amd64, [rocketchat], fips) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [account-service presence-service omnichannel-transcript-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [authorization-service queue-worker-service ddp-streamer-service], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], ${{ (github.event_name != 'release' && github.ref != 'refs/heads/develop') && 'coverage' || 'production' }}) (push) Has been cancelled
CI / 🚢 Build Docker (arm64, [rocketchat], coverage) (push) Has been cancelled
CI / 🚢 Publish Docker Images (ghcr.io) (push) Has been cancelled
CI / 📦 Track Image Sizes (push) Has been cancelled
CI / 🔎 Code Check - Action Lint (push) Has been cancelled
CI / 🔎 Code Check (push) Has been cancelled
CI / 🔨 Test Storybook (push) Has been cancelled
CI / 🔨 Test Unit (push) Has been cancelled
CI / 🔨 Test API (CE) (push) Has been cancelled
CI / 🔨 Test API Livechat (CE) (push) Has been cancelled
CI / 🔨 Test UI (CE) (push) Has been cancelled
CI / 🔨 Test API (EE) (push) Has been cancelled
CI / 🔨 Test API Livechat (EE) (push) Has been cancelled
CI / 🔨 Test API Apps (deno-runtime - EE) (push) Has been cancelled
CI / 🔨 Test UI (EE) (push) Has been cancelled
CI / 🔨 Test API (FIPS) (push) Has been cancelled
CI / 🔨 Test API Livechat (FIPS) (push) Has been cancelled
CI / 🔨 Test UI (FIPS) (push) Has been cancelled
CI / 🔨 Test Federation Matrix (push) Has been cancelled
CI / 📊 Report Coverage (push) Has been cancelled
CI / ✅ Tests Done (push) Has been cancelled
CI / 🚀 Publish build assets (push) Has been cancelled
CI / 🚀 Publish Docker Images (DockerHub) (push) Has been cancelled
CI / 🚀 Notify external services (push) Has been cancelled
CI / Update Version Durability (push) Has been cancelled
Release / Release (push) Has been cancelled
Code scanning - action / CodeQL-Build (push) Failing after 2s
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
snapshot of https://github.com/RocketChat/Rocket.Chat.git (develop, 2026-09-16; blobs > 131072B omitted)
2026-09-16 01:21:02 +05:00

94 lines
2.9 KiB
TypeScript

import { MOCK_SERVER_URL } from '../e2e/config/constants';
type Decision = 'DECISION_PERMIT' | 'DECISION_DENY';
export const mockServerSet = async (method: string, path: string, body: unknown, statusCode = 200, times = 0): Promise<void> => {
const res = await fetch(`${MOCK_SERVER_URL}/__mock/set`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
method,
path,
response: { status_code: statusCode, body, times },
}),
});
if (!res.ok) {
throw new Error(`Failed to program mock-server: ${res.status} ${await res.text()}`);
}
};
export const mockServerSetMany = async (
mocks: Array<{ method: string; path: string; body: unknown; statusCode?: number; times?: number }>,
): Promise<void> => {
const res = await fetch(`${MOCK_SERVER_URL}/__mock/set-many`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(
mocks.map((m) => ({
method: m.method,
path: m.path,
response: { status_code: m.statusCode ?? 200, body: m.body, times: m.times ?? 0 },
})),
),
});
if (!res.ok) {
throw new Error(`Failed to program mock-server (set-many): ${res.status} ${await res.text()}`);
}
};
export const mockServerReset = async (): Promise<void> => {
await fetch(`${MOCK_SERVER_URL}/__mock/reset`, { method: 'DELETE' });
};
export const mockServerHealthy = async (): Promise<boolean> => {
try {
const res = await fetch(`${MOCK_SERVER_URL}/__mock/health`);
return res.ok;
} catch {
return false;
}
};
export const seedDefaultMocks = async () => {
await mockServerSetMany([
{
method: 'GET',
path: '/healthz',
body: { status: 'SERVING' },
},
{
method: 'POST',
path: '/auth/realms/mock/protocol/openid-connect/token',
body: { access_token: 'mock-pdp-token', token_type: 'Bearer', expires_in: 3600 },
},
]);
};
export const seedGetDecisionBulk = async (
responses: Array<{ resourceDecisions: Array<{ decision: Decision; ephemeralResourceId?: string }> }>,
times = 0,
) => {
await mockServerSet('POST', '/authorization.v2.AuthorizationService/GetDecisionBulk', { decisionResponses: responses }, 200, times);
};
export const seedGetEntitlements = async (fqnMap: Record<string, unknown>, times = 0) => {
await mockServerSet(
'POST',
'/authorization.v2.AuthorizationService/GetEntitlements',
{ entitlements: [{ actionsPerAttributeValueFqn: fqnMap }] },
200,
times,
);
};
export const seedBulkDecisionByEntity = async (permitValues: string[], defaultDecision: Decision = 'DECISION_DENY') => {
const res = await fetch(`${MOCK_SERVER_URL}/__mock/set-bulk-decision`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ permit_values: permitValues, default_decision: defaultDecision }),
});
if (!res.ok) {
throw new Error(`Failed to program mock-server (set-bulk-decision): ${res.status} ${await res.text()}`);
}
};