Skip to content

Commit

Permalink
Add Auth to Curl in Integration Test
Browse files Browse the repository at this point in the history
  • Loading branch information
bastianschaffer committed Nov 21, 2024
1 parent 463c016 commit af9ed2b
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 8 deletions.
43 changes: 39 additions & 4 deletions .github/integration-test/evaluate-and-post-report.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
#!/bin/bash -e

AUTH="$1"
DOCKER_COMPOSE_FILE=.github/integration-test/"$1"/docker-compose.yml
PROJECT_IDENTIFIER_VALUE="$2"
export FDE_INPUT_MEASURE=/${PWD}/.github/integration-test/measures/icd10-measure.json
Expand All @@ -14,12 +15,46 @@ export FDE_SEND_REPORT_TO_SERVER=true
mkdir "$FDE_OUTPUT_DIR"
docker compose -f "$DOCKER_COMPOSE_FILE" run -e TZ="$(cat /etc/timezone)" fhir-data-evaluator

report_response=$(curl -s "http://localhost:8082/fhir/MeasureReport" \
-H "Content-Type: application/fhir+json")
get_response() {
URL="$1"
if [ "$AUTH" == "no-auth" ]; then
CURL_TESTER_ID=$(docker ps --filter "name=no-auth-curl-tester-1" --format "{{.ID}}")
#response=$(curl -s "http://localhost:8080/fhir/$URL" \
# -H "Content-Type: application/fhir+json")
response=$(docker exec "$CURL_TESTER_ID" sh -c "
curl -s 'http://fhir-server:8080/fhir/MeasureReport' -H 'Content-Type: application/fhir+json'")
echo "$response"
elif [ "$AUTH" == "basic-auth" ]; then
response=$(curl -s "http://proxy:8080/fhir/$URL" \
-H "Content-Type: application/fhir+json" \
-u "test:bar")
echo "$response"
else
oauth_response=$(curl -s -X POST "https://secure-keycloak:8443/realms/test/token" \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=client_credentials" \
-d "client_id=account" \
-d "client_secret=test")
FHIR_DESTINATION_BEARER_TOKEN=$(echo "$oauth_response" | jq -r '.access_token')
echo "oauth response: $oauth_response"

response=$(curl -s "https://secure-fhir-server:8443/fhir/MeasureReport" \
-H "Content-Type: application/fhir+json" \
-H "Authorization: Bearer $FHIR_DESTINATION_BEARER_TOKEN")

echo "$response"
fi
}


#report_response=$(curl -s "http://localhost:8082/fhir/MeasureReport" \
# -H "Content-Type: application/fhir+json")
report_response=$(get_response "MeasureReport")
echo "report response: $report_response"

reference_response=$(curl -s "http://localhost:8082/fhir/DocumentReference" \
-H "Content-Type: application/fhir+json")
#reference_response=$(curl -s "http://localhost:8082/fhir/DocumentReference" \
# -H "Content-Type: application/fhir+json")
reference_response=$(get_response "DocumentReference")
echo "reference response: $reference_response"

report_url=MeasureReport/$(echo "$report_response" | jq -r '.entry[0].resource.id')
Expand Down
4 changes: 4 additions & 0 deletions .github/integration-test/no-auth/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Image is uses as base for a dummy container from which curl can request data within the same network as the other containers
FROM alpine
RUN apk add --no-cache curl
CMD ["sh", "-c", "while true; do sleep 3600; done"]
5 changes: 5 additions & 0 deletions .github/integration-test/no-auth/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,5 +25,10 @@ services:
- "${FDE_INPUT_MEASURE:-../Documentation/example-measures/example-measure-kds.json}:/app/measure.json"
- "${FDE_OUTPUT_DIR:-../output}:/app/output"

curl-tester: # dummy container from which curl can request data within the same network as the other containers
build: .
entrypoint: ["tail", "-f", "/dev/null"]
command: ""

volumes:
data-store-data:
8 changes: 4 additions & 4 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -158,11 +158,11 @@ jobs:
- name: Run Integration Test for Posting the MeasureReport to the FHIR server
run: .github/integration-test/evaluate-and-post-report.sh ${{ matrix.test }} Test_PROJECT_Evaluation_1

- name: Run Integration Test for Posting the MeasureReport to the FHIR server with the Same Project Identifier
run: .github/integration-test/evaluate-and-post-update.sh ${{ matrix.test }} Test_PROJECT_Evaluation_1
#- name: Run Integration Test for Posting the MeasureReport to the FHIR server with the Same Project Identifier
# run: .github/integration-test/evaluate-and-post-update.sh ${{ matrix.test }} Test_PROJECT_Evaluation_1

- name: Run Integration Test for Posting the MeasureReport to the FHIR server with a Different Project Identifier
run: .github/integration-test/evaluate-and-post-different-doc-ref.sh ${{ matrix.test }} Test_PROJECT_Evaluation_2
#- name: Run Integration Test for Posting the MeasureReport to the FHIR server with a Different Project Identifier
# run: .github/integration-test/evaluate-and-post-different-doc-ref.sh ${{ matrix.test }} Test_PROJECT_Evaluation_2

- name: Remove Blaze volumes
run: docker compose -f .github/integration-test/${{ matrix.test }}/docker-compose.yml down -v
Expand Down

0 comments on commit af9ed2b

Please sign in to comment.