name: "Run e2e Playwright"
description: "Run e2e Playwright"

inputs:
  options:
    description: 'Options'
    required: true
    type: string
  test-runner:
    description: 'Test runner'
    required: false
    type: string
    default: 'Playwright'
  artifact-name:
    description: Name of the artifact cache
    required: true
    type: string

runs:
  using: "composite"
  steps:
    - name: Setup and run with options
      shell: bash
      run: |
        # npx http-server -c-1 $CONTENT_CE_DIST_PATH -p 4200 > /dev/null &\

        {
          echo "APP_CONFIG_ECM_HOST={protocol}//{hostname}{:port}"
          echo "APP_CONFIG_PLUGIN_FOLDER_RULES=true"
          echo "APP_CONFIG_PLUGIN_AOS=true"
          echo "APP_CONFIG_PLUGIN_CONTENT_SERVICE=true"
          echo "APP_CONFIG_ENABLE_MOBILE_APP_SWITCH=false"
          echo "APP_CONFIG_PROVIDER=ECM"
          echo "APP_CONFIG_AUTH_TYPE=BASIC"
          echo "APP_CONFIG_OAUTH2_HOST=http://localhost:4200/auth/realms/alfresco"
          echo "APP_CONFIG_OAUTH2_CLIENTID=alfresco"
          echo "APP_CONFIG_SESSION_TIME_FOR_OPEN_APP_DIALOG_DISPLAY_IN_HOURS=12"
          echo "APP_CONFIG_OAUTH2_IMPLICIT_FLOW=true"
          echo "APP_CONFIG_OAUTH2_SILENT_LOGIN=true"
          echo "APP_CONFIG_OAUTH2_REDIRECT_LOGOUT=/"
          echo "APP_CONFIG_OAUTH2_REDIRECT_LOGIN=/"
          echo "APP_CONFIG_OAUTH2_REDIRECT_SILENT_IFRAME_URI={protocol}//{hostname}{:port}/assets/silent-refresh.html"
        } >> .env

        npm start > /dev/null &\

        echo "Running playwright tests with options ${{ inputs.options }}"
        sleep 90
        npx nx run ${{ inputs.options }}-e2e:e2e


    - name: Upload E2Es results
      if: ${{ always() }}
      uses: actions/upload-artifact@v3
      with:
        name: ${{ inputs.artifact-name }}
        path: test-results/
