Files
portkey-ai--gateway/plugins/pillar/pillar.test.ts
T
wehub-resource-sync 3cd11ababe
Check Markdown links / linkChecker (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:38:56 +08:00

99 lines
3.0 KiB
TypeScript

import testCreds from './.creds.json';
import { handler as scanPromptHandler } from './scanPrompt';
import { handler as scanResponseHandler } from './scanResponse';
function getParameters(
scanners: string[] = [
'pii',
'prompt_injection',
'secrets',
'toxic_language',
'invisible_characters',
]
) {
return {
credentials: testCreds,
scanners,
};
}
describe('scanPrompt handler', () => {
it('should fail if the apiKey is invalid', async () => {
const eventType = 'beforeRequestHook';
const context = {
request: { text: 'this is a test string for moderations' },
};
const parameters = JSON.parse(JSON.stringify(getParameters()));
parameters.credentials.apiKey = 'invalid-api-key';
const result = await scanPromptHandler(context, parameters, eventType);
// console.log(result);
expect(result).toBeDefined();
expect(result.verdict).toBe(false);
expect(result.error).toBeDefined();
expect(result.data).toBeNull();
});
it('should pass when text is clean', async () => {
const eventType = 'beforeRequestHook';
const context = {
request: { text: 'this is a test string for moderations' },
};
const parameters = getParameters();
const result = await scanPromptHandler(context, parameters, eventType);
// console.log(result);
expect(result).toBeDefined();
expect(result.verdict).toBe(true);
expect(result.error).toBeNull();
expect(result.data).toBeDefined();
});
it('should fail when text contains PII', async () => {
const eventType = 'beforeRequestHook';
const context = {
request: { text: 'My social security number is 112-42-3323' },
};
const parameters = getParameters();
const result = await scanPromptHandler(context, parameters, eventType);
// console.log(result);
expect(result).toBeDefined();
expect(result.verdict).toBe(false);
expect(result.error).toBeNull();
expect(result.data).toBeDefined();
});
});
describe('scanResponse handler', () => {
it('should pass when response is clean', async () => {
const eventType = 'afterRequestHook';
const context = {
response: { text: 'this is a test string for moderations' },
};
const parameters = getParameters(['pii']);
const result = await scanResponseHandler(context, parameters, eventType);
// console.log(result);
expect(result).toBeDefined();
expect(result.verdict).toBe(true);
expect(result.error).toBeNull();
expect(result.data).toBeDefined();
});
it('should fail when response contains PII', async () => {
const eventType = 'afterRequestHook';
const context = {
response: { text: 'My social security number is 112-42-3323' },
};
const parameters = getParameters(['pii']);
const result = await scanResponseHandler(context, parameters, eventType);
// console.log(result);
expect(result).toBeDefined();
expect(result.verdict).toBe(false);
expect(result.error).toBeNull();
expect(result.data).toBeDefined();
});
});