// engine/compliance-test-generator/test-formatter.ts — SPEC-390: Formats mapped tests to output formats
export function formatAsJest(test) {
    return (`describe('${test.control.id} — ${test.control.title}', () => {\n` +
        `  it('should satisfy: ${test.criterion.slice(0, 80)}', async () => {\n` +
        `    // Control: ${test.control.description}\n` +
        `    // Rationale: ${test.rationale}\n` +
        `    // TODO: implement assertion for this compliance requirement\n` +
        `    expect(true).toBe(true); // placeholder\n` +
        `  });\n` +
        `});\n`);
}
export function formatAsGherkin(test) {
    return (`Feature: ${test.control.id} — ${test.control.title}\n` +
        `  Scenario: ${test.criterion.slice(0, 80)}\n` +
        `    Given the system is running\n` +
        `    When ${test.criterion.slice(0, 60).toLowerCase()}\n` +
        `    Then the ${test.control.title.toLowerCase()} control is satisfied\n\n`);
}
export function formatAsMarkdown(test) {
    return (`- [ ] **[${test.control.id}]** ${test.criterion}\n` +
        `  - Control: ${test.control.title}\n` +
        `  - Rationale: ${test.rationale}\n`);
}
export function formatTest(test, format) {
    if (format === 'jest') {
        return formatAsJest(test);
    }
    if (format === 'gherkin') {
        return formatAsGherkin(test);
    }
    return formatAsMarkdown(test);
}
//# sourceMappingURL=test-formatter.js.map