feat: harden CMPP delivery and platform workflows
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
import { ManualOperationAuditMiddleware } from './manual-operation-audit.middleware';
|
||||
|
||||
describe('ManualOperationAuditMiddleware', () => {
|
||||
it('records a successful authenticated mutation without storing request bodies', async () => {
|
||||
const prisma = { operationLog: { create: jest.fn().mockResolvedValue({ id: 'log-1' }) } };
|
||||
const middleware = new ManualOperationAuditMiddleware(prisma as never);
|
||||
let finish: (() => void) | undefined;
|
||||
const response = { statusCode: 200, once: (_event: 'finish', listener: () => void) => { finish = listener; } };
|
||||
const next = jest.fn();
|
||||
|
||||
middleware.use({
|
||||
method: 'PUT',
|
||||
originalUrl: '/api/admin/enterprise-applications/c12345678901234567890?view=full',
|
||||
sessionUserId: 'user-1',
|
||||
header: () => 'jest',
|
||||
}, response, next);
|
||||
finish?.();
|
||||
await Promise.resolve();
|
||||
|
||||
expect(next).toHaveBeenCalled();
|
||||
expect(prisma.operationLog.create).toHaveBeenCalledWith({
|
||||
data: expect.objectContaining({
|
||||
userId: 'user-1',
|
||||
action: 'manual_operation.put',
|
||||
resource: 'enterprise-applications',
|
||||
resourceId: 'c12345678901234567890',
|
||||
detail: { method: 'PUT', path: '/api/admin/enterprise-applications/c12345678901234567890', statusCode: 200 },
|
||||
}),
|
||||
});
|
||||
});
|
||||
|
||||
it('does not record unauthenticated, read-only, or failed requests', () => {
|
||||
const prisma = { operationLog: { create: jest.fn() } };
|
||||
const middleware = new ManualOperationAuditMiddleware(prisma as never);
|
||||
const response = { statusCode: 500, once: (_event: 'finish', listener: () => void) => listener() };
|
||||
middleware.use({ method: 'POST', originalUrl: '/api/admin/test', sessionUserId: 'user-1', header: () => undefined }, response, jest.fn());
|
||||
middleware.use({ method: 'GET', originalUrl: '/api/admin/test', sessionUserId: 'user-1', header: () => undefined }, response, jest.fn());
|
||||
middleware.use({ method: 'POST', originalUrl: '/api/admin/test', header: () => undefined }, response, jest.fn());
|
||||
expect(prisma.operationLog.create).not.toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user