---
name: "Test Composite Action"
description: "Test action uses composite"

inputs:
  test_input_optional:
    description: Test

runs:
  using: "composite"
  steps:
  - uses: https://github.com/actions/setup-node@v3
    with:
      node-version: '16'
  - run: |
      console.log(process.version);
      console.log("Hi from node");
      console.log("${{ inputs.test_input_optional }}");
      if("${{ inputs.test_input_optional }}" !== "Test") {
        console.log("Invalid input test_input_optional expected \"Test\" as value");
        process.exit(1);
      }
      if(!process.version.startsWith('v16')) {
        console.log("Expected node v16, but got " + process.version);
        process.exit(1);
      }
    shell: node {0}
  - uses: ./uses-composite/composite_action
    id: composite
    with:
      test_input_required: 'test_input_required_value'
      test_input_optional: 'test_input_optional_value'
      test_input_optional_with_default_overriden: 'test_input_optional_with_default_overriden'
      test_input_required_with_default: 'test_input_optional_value'
      test_input_required_with_default_overriden: 'test_input_required_with_default_overriden'
      secret_input: ${{inputs.test_input_optional}}
    env:
      secret_input: ${{inputs.test_input_optional}}
  - run: |
      echo "steps.composite.outputs.test_output=${{ steps.composite.outputs.test_output }}"
      [[ "${{steps.composite.outputs.test_output == 'test_output_value'}}" = "true" ]] || exit 1
    shell: bash
  - run: |
      echo "steps.composite.outputs.secret_output=${{ steps.composite.outputs.secret_output }}"
      [[ "${{steps.composite.outputs.secret_output == format('{0}/{0}', inputs.test_input_optional)}}" = "true" ]] || exit 1
    shell: bash
  # Now test again with default values
  - name: ./uses-composite/composite_action with defaults
    uses: ./uses-composite/composite_action
    id: composite2
    with:
      test_input_required: 'test_input_required_value'
      test_input_optional_with_default_overriden: 'test_input_optional_with_default_overriden'
      test_input_required_with_default_overriden: 'test_input_required_with_default_overriden'

  - run: |
      echo "steps.composite2.outputs.test_output=${{ steps.composite2.outputs.test_output }}"
      [[ "${{steps.composite2.outputs.test_output == 'test_output_value'}}" = "true" ]] || exit 1
    shell: bash
  - run: |
      echo "steps.composite.outputs.secret_output=$COMPOSITE_ACTION_ENV_OUTPUT"
      [[ "${{env.COMPOSITE_ACTION_ENV_OUTPUT == 'my test value' }}" = "true" ]] || exit 1
    shell: bash
