import { getAssertionsPrompt, } from "./sharedAssertionRules.js";
const specificRules = [
    {
        title: "Chained values from inline request data",
        description: "Every value used in an assertion must come from what is written inline in the test function — the request body, path, or query parameters.",
        subPoints: [
            "Do not reference data set up in `beforeAll` or any other setup helper.",
            "When an ID was sent in the request body, path, or query, assert its exact value in the response. Since the sent value is already known, asserting only that it is non-null is not sufficient.",
            "Reserve `is not None` / `not.toBeNull()` for server-generated IDs only.",
            "Apply the same rule to all other fields and to array items: use inline request body values as the expected values, not setup helper data.",
            "Every assertion that can be derived from `expected_response_body`, the inline request body, or path/query literals must appear in this file — do not rely on the integration test to cover it.",
        ],
        examples: [
            {
                language: "javascript",
                code: `expect(getResponseValue(productGetResponse, "id"), 'id').toBe(getResponseValue(productsPostResponse, "id"));`,
            },
        ],
    },
];
const SCOPE = `### Scope
- Only modify test functions — do not touch \`beforeAll\`, \`afterAll\`, or any setup or teardown helper.
- Only add assertions clearly supported by \`expected_response_body\`, inline request / path / query literals, codebase evidence, or the test generation recommendations received for this test. Do not invent constraints.
- Add new assertions immediately after the existing status-code assertion — do not move or remove anything.
- Do not reference \`beforeAll\` / \`afterAll\` provisioning data in any assertion — every assertion value must come from the inline request body, path, query, prior response, or \`expected_response_body\`.`;
export function getContractProviderAssertionsPrompt(testFile, enhanceType) {
    return getAssertionsPrompt(specificRules, SCOPE, testFile, enhanceType);
}
