42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
|
|
import {
|
|
ARTIFACT_EVIDENCE_KINDS,
|
|
DB_EVIDENCE_ACTIONS,
|
|
DEPLOY_EVIDENCE_ACTIONS,
|
|
GITHUB_EVIDENCE_ACTIONS,
|
|
HOST_EVIDENCE_ACTIONS,
|
|
isArtifactEvidenceKind,
|
|
isDbEvidenceAction,
|
|
isDeployEvidenceAction,
|
|
isGitHubEvidenceAction,
|
|
isHostEvidenceAction,
|
|
} from '../src/evidence-actions.js';
|
|
|
|
describe('evidence action constants', () => {
|
|
it('keeps host evidence actions as the composed allowlist', () => {
|
|
expect(HOST_EVIDENCE_ACTIONS).toEqual([
|
|
'ejclaw_service_status',
|
|
'ejclaw_service_logs',
|
|
'ejclaw_role_runtime_config',
|
|
...DEPLOY_EVIDENCE_ACTIONS,
|
|
...DB_EVIDENCE_ACTIONS,
|
|
...GITHUB_EVIDENCE_ACTIONS,
|
|
]);
|
|
});
|
|
|
|
it('recognizes scoped evidence actions', () => {
|
|
expect(isHostEvidenceAction('github_run_jobs')).toBe(true);
|
|
expect(isDbEvidenceAction('db_recent_scheduled_tasks')).toBe(true);
|
|
expect(isDeployEvidenceAction('ejclaw_artifact_metadata')).toBe(true);
|
|
expect(isGitHubEvidenceAction('github_workflow_file')).toBe(true);
|
|
expect(isHostEvidenceAction('cat /etc/shadow')).toBe(false);
|
|
});
|
|
|
|
it('recognizes artifact evidence kinds', () => {
|
|
expect(ARTIFACT_EVIDENCE_KINDS).toContain('runner_dist');
|
|
expect(isArtifactEvidenceKind('runner_dist')).toBe(true);
|
|
expect(isArtifactEvidenceKind('../secret')).toBe(false);
|
|
});
|
|
});
|