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
Auto-close duplicate issues / auto-close-duplicates (push) Failing after 1s
Code scanning - action / CodeQL-Build (push) Failing after 2s
94 lines
2.9 KiB
TypeScript
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()}`);
|
|
}
|
|
};
|