{
  "test_id": "ORCL.HCM.RECRUIT.OFFER",
  "scenario_name": "Job Offer",
  "application": "Oracle Fusion Cloud",
  "product": "HCM",
  "module": "Recruiting",
  "process": "Job Offer",
  "business_flow": "Recruit-to-Hire",
  "scenario_type": "Positive / Negative / Boundary / Security / Integration",
  "priority": "High",
  "automation_status": "SyntraFlow Ready",
  "library": "Syntra Standard",
  "canonical_url": "https://www.syntraflow.cloud/oracle-erp-testing-tool/test-library/hcm/recruiting/job-offer/",
  "objective": {
    "intro": "This test validates job offer creation, compensation packaging, approval routing, extension, candidate response and offer letter generation across Oracle Fusion HCM Recruiting, using masked, synthetic candidate and compensation data and without assuming a universal compensation band.",
    "confirms": [
      "each job offer can be created from an approved requisition with a compensation package — base salary, sign-on bonus and relocation package where applicable — and a proposed start date recorded correctly",
      "offers route through the approver or approvers configured for the customer's own approval hierarchy — single-level, multi-level or compensation-band-based, including delegation and auto-approval where configured",
      "approved offers can be extended to the candidate with the correct final terms and response deadline, and the candidate's response — accept, reject or negotiate — is correctly recorded",
      "offer letters are correctly generated to reflect the final agreed terms and can be routed for candidate e-signature with supporting documents attached",
      "offer lifecycle actions — revise and re-extend, rescind and withdraw before extension — are recorded correctly",
      "deliberately invalid submissions — compensation exceeding the approved band, missing approval, missing required field, duplicate offer, offer to a withdrawn candidate, expired offer acceptance, skipped approval step, unauthorized creation — are correctly rejected or flagged rather than silently accepted"
    ],
    "scope_note": "A negative or boundary Job Offer scenario passes when Oracle correctly enforces the expected rule; this test does not attempt to certify a specific Oracle application defect, and does not assume a universal compensation band or approval hierarchy — both depend entirely on customer-specific Oracle Fusion configuration. Where an entry or validation appears unexpected or its cause is unclear, it is treated as requiring further investigation and supporting evidence rather than a confirmed conclusion. This page catalogs 35 individual Job Offer scenarios as a single comprehensive reference rather than as separate indexable pages. All candidate identities and compensation figures used in testing are synthetic or masked — never real candidate PII or real salary data."
  },
  "preconditions": [
    "Oracle Fusion Recruiting access is available to the test user.",
    "An approved ${REQUISITION} with an associated ${CANDIDATE} application ready for offer creation is available or can be constructed.",
    "A configured ${COMPENSATION_BAND} for the position, including ${BASE_SALARY}, ${SIGN_ON_BONUS} and ${RELOCATION_PACKAGE} ranges, is available.",
    "${APPROVER} test users with the appropriate compensation approval authority are available.",
    "A configured approval hierarchy, including single-level, multi-level and compensation-band-based approval where applicable, is in place.",
    "A withdrawn candidate application and an expired-offer scenario are available or can be constructed for negative testing.",
    "A user without the required Recruiting security access is available for security testing."
  ],
  "test_data": [
    {
      "field": "Candidate",
      "example": "${CANDIDATE}"
    },
    {
      "field": "Requisition",
      "example": "${REQUISITION}"
    },
    {
      "field": "Compensation Band",
      "example": "${COMPENSATION_BAND}"
    },
    {
      "field": "Base Salary",
      "example": "${BASE_SALARY}"
    },
    {
      "field": "Sign-On Bonus",
      "example": "${SIGN_ON_BONUS}"
    },
    {
      "field": "Relocation Package",
      "example": "${RELOCATION_PACKAGE}"
    },
    {
      "field": "Start Date",
      "example": "${START_DATE}"
    },
    {
      "field": "Approver",
      "example": "${APPROVER}"
    },
    {
      "field": "Offer Status",
      "example": "${OFFER_STATUS}"
    },
    {
      "field": "Offer Expiration",
      "example": "${OFFER_EXPIRATION}"
    }
  ],
  "business_steps": [
    {
      "step_number": 1,
      "step_name": "Sign In to Oracle Fusion HCM",
      "action": "Sign in to Oracle Fusion Cloud with a user account that has Recruiting access.",
      "test_data": "",
      "expected_result": "The Oracle Fusion Cloud home page loads successfully for the authenticated user.",
      "validation_type": "action"
    },
    {
      "step_number": 2,
      "step_name": "Navigate to the Candidate's Application",
      "action": "Navigate to the Recruiting work area and open the candidate's application record for the target requisition.",
      "test_data": "${CANDIDATE} / ${REQUISITION}",
      "expected_result": "The candidate's application record opens successfully with the correct requisition context.",
      "validation_type": "action"
    },
    {
      "step_number": 3,
      "step_name": "Create the Offer with Compensation Package and Start Date",
      "action": "Create a job offer for the candidate, including base salary and any applicable sign-on bonus or relocation package, plus the proposed start date.",
      "test_data": "${BASE_SALARY} / ${SIGN_ON_BONUS} / ${RELOCATION_PACKAGE} / ${START_DATE}",
      "expected_result": "The offer is created in draft status with the compensation package and start date recorded correctly, within the configured compensation band.",
      "validation_type": "action"
    },
    {
      "step_number": 4,
      "step_name": "Submit Offer for Approval",
      "action": "Submit the offer for approval according to the configured approval hierarchy.",
      "test_data": "${APPROVER}",
      "expected_result": "The offer routes to the correct approver or approvers, or a deliberately invalid submission is rejected with the expected validation.",
      "validation_type": "action",
      "note": "Exact approval routing depends on the customer's own single-level, multi-level or compensation-band-based configuration."
    },
    {
      "step_number": 5,
      "step_name": "Extend the Approved Offer to the Candidate",
      "action": "Extend the approved offer to the candidate with the final compensation package, start date and response deadline.",
      "test_data": "${OFFER_EXPIRATION}",
      "expected_result": "The offer status updates to extended and the candidate is notified with the correct terms and expiration date.",
      "validation_type": "business_assertion",
      "note": "Correctly preventing extension of an unapproved, duplicate or withdrawn-candidate offer is a passing outcome for negative scenarios, not a failure."
    },
    {
      "step_number": 6,
      "step_name": "Record the Candidate's Response",
      "action": "Record the candidate's response to the extended offer — accept, reject or negotiate — before the response deadline.",
      "test_data": "${OFFER_STATUS}",
      "expected_result": "The candidate's response is recorded correctly, and an attempt to accept after the offer has expired is correctly blocked.",
      "validation_type": "business_assertion"
    },
    {
      "step_number": 7,
      "step_name": "Generate and Route the Offer Letter for Signature",
      "action": "Generate the offer letter reflecting the final agreed terms and route it to the candidate for e-signature.",
      "test_data": "",
      "expected_result": "The offer letter is generated with terms matching the final offer and is correctly routed for signature.",
      "validation_type": "action"
    },
    {
      "step_number": 8,
      "step_name": "Verify Final Offer Status and Terms",
      "action": "Confirm that the final offer status and terms — compensation, start date and approval history — are correct after creation, approval, extension and response.",
      "test_data": "${OFFER_STATUS}",
      "expected_result": "Final offer status and terms accurately reflect a valid offer lifecycle, or an expected validation for an invalid one.",
      "validation_type": "business_assertion",
      "note": "This is the main business assertion for the scenario across the full catalog of 35 Job Offer variations."
    }
  ],
  "expected_results": [
    "Each job offer created correctly with the intended compensation package, start date and candidate details.",
    "Approval routing correctly followed the configured single-level, multi-level or compensation-band-based approval rule.",
    "Extended offers correctly reflected final compensation, start date and expiration terms.",
    "Candidate response — accept, reject or negotiate — correctly recorded.",
    "Offer letters correctly generated, e-signed and attached with supporting documents.",
    "Deliberately invalid submissions raised the expected data, compensation or security validation rather than being silently accepted."
  ],
  "validation_checkpoints": [
    "Offer compensation correctly validated against the configured compensation band.",
    "Approval routes to the correct approver per the configured hierarchy.",
    "Candidate response — accept, reject or negotiate — correctly recorded.",
    "Offer letter correctly generated and reflects the final agreed terms.",
    "Expired, withdrawn-candidate and duplicate offers correctly blocked.",
    "Unauthorized offer creation or extension correctly blocked."
  ]
}
