Files
qinglong/packages/ql3-cluster-admin/test/approvalDecisionManagement.test.cjs

35 lines
1.0 KiB
JavaScript

const assert = require('node:assert/strict');
const { test } = require('node:test');
const {
ClusterApprovalDecisionManagementConfigurationError,
createClusterApprovalDecisionManagementService,
} = require('@qinglong/cluster-admin/approval-decision-management');
test('composes the shared Approval decision authority over a caller-owned pool', () => {
const pool = {
async query() {
throw new Error('not used');
},
async connect() {
throw new Error('not used');
},
};
const service = createClusterApprovalDecisionManagementService({ pool });
assert.equal(typeof service.decide, 'function');
assert.equal(Object.isFrozen(service), true);
});
test('rejects missing pool authority and widened options', () => {
for (const options of [
{},
{ pool: { query() {} } },
{ pool: { query() {}, connect() {} }, transport: {} },
]) {
assert.throws(
() => createClusterApprovalDecisionManagementService(options),
ClusterApprovalDecisionManagementConfigurationError,
);
}
});