Add pipeline test
This commit is contained in:
parent
c1852ddd56
commit
31fd761278
42
src/pipeline.test.ts
Normal file
42
src/pipeline.test.ts
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
import { assertEquals } from './deps.ts';
|
||||||
|
|
||||||
|
import pipeline from './pipeline.ts';
|
||||||
|
import noopPolicy from './policies/noop-policy.ts';
|
||||||
|
import readOnlyPolicy from './policies/read-only-policy.ts';
|
||||||
|
import { buildInputMessage } from './test.ts';
|
||||||
|
|
||||||
|
Deno.test('passes events through multiple policies', async () => {
|
||||||
|
const msg = buildInputMessage();
|
||||||
|
|
||||||
|
const result = await pipeline(msg, [
|
||||||
|
noopPolicy,
|
||||||
|
readOnlyPolicy,
|
||||||
|
]);
|
||||||
|
|
||||||
|
assertEquals(result.action, 'reject');
|
||||||
|
assertEquals(result.msg, 'The relay is read-only.');
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test('short-circuits on the first reject', async () => {
|
||||||
|
const msg = buildInputMessage();
|
||||||
|
|
||||||
|
const result = await pipeline(msg, [
|
||||||
|
readOnlyPolicy,
|
||||||
|
noopPolicy,
|
||||||
|
]);
|
||||||
|
|
||||||
|
assertEquals(result.action, 'reject');
|
||||||
|
assertEquals(result.msg, 'The relay is read-only.');
|
||||||
|
});
|
||||||
|
|
||||||
|
Deno.test('accepts when all policies accept', async () => {
|
||||||
|
const msg = buildInputMessage();
|
||||||
|
|
||||||
|
const result = await pipeline(msg, [
|
||||||
|
noopPolicy,
|
||||||
|
noopPolicy,
|
||||||
|
noopPolicy,
|
||||||
|
]);
|
||||||
|
|
||||||
|
assertEquals(result.action, 'accept');
|
||||||
|
});
|
Loading…
Reference in New Issue
Block a user