Skip to content

Commit

Permalink
first round of integration tests (#567)
Browse files Browse the repository at this point in the history
  • Loading branch information
FoseFx committed Dec 3, 2023
1 parent 2285101 commit 97987be
Show file tree
Hide file tree
Showing 46 changed files with 12,117 additions and 0 deletions.
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ gen/** linguist-generated=true
gen/**/helpers.go linguist-generated=false
services/impulse_svc/gen/** linguist-generated=true
services/**/schema.sql linguist-generated=true
**/*.expected linguist-generated=true
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -494,3 +494,4 @@ devenv.local.nix
# pre-commit
.pre-commit-config.yaml

*.actual
1 change: 1 addition & 0 deletions devenv.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ in
git
go-migrate
grpcurl
jq
nixpkgs-fmt
sqlc
] ++ [
Expand Down
34 changes: 34 additions & 0 deletions services/task-svc/integration_tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/bin/bash

set -e

### Setup ###
cd ../../
yes | ./migrate.sh task-svc down
./migrate.sh task-svc up

cd -

psql -f integration_tests/seed.sql postgres://postgres:postgres@localhost:5432/task-svc

rm integration_tests/*.actual -f


# Loop through all the .exec files
cd ./integration_tests

for exec_file in *.exec; do
base_name="${exec_file%.exec}"

bash "$exec_file" > "${base_name}.actual"

# Run diff against the expected file
diff "${base_name}.actual" "${base_name}.expected"

# Check the exit code of the diff command
if [ $? -eq 0 ]; then
echo "Test for $base_name passed."
else
echo "Test for $base_name failed."
fi
done
15 changes: 15 additions & 0 deletions services/task-svc/integration_tests/01.GetBed.exec
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/bash

echo "Exists:"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{"id": "01e91d0a-88ac-402b-932e-bae326a7c234"}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBed

echo "Does not exist:"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{"id": "11e91d0a-88ac-402b-932e-bae326a7c234"}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBed 2>&1 || exit 0
10 changes: 10 additions & 0 deletions services/task-svc/integration_tests/01.GetBed.expected

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

24 changes: 24 additions & 0 deletions services/task-svc/integration_tests/02.GetBedByPatient.exec
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/bin/bash

echo "Patient Exists and assigned:"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{"patient_id": "8763d32d-73d1-4e53-b367-b970ee5f6c18"}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBedByPatient

echo "Patient exists but not assigned to bed:"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{"patient_id": "2d977c7a-c0a8-4d06-b474-1824d440d8b4"}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBedByPatient


echo "Patient does not exist:"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{"patient_id": "3d977c7a-c0a8-4d06-b474-1824d440d8b4"}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBedByPatient

16 changes: 16 additions & 0 deletions services/task-svc/integration_tests/02.GetBedByPatient.expected

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions services/task-svc/integration_tests/03.GetBeds.exec
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBeds
69 changes: 69 additions & 0 deletions services/task-svc/integration_tests/03.GetBeds.expected

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

41 changes: 41 additions & 0 deletions services/task-svc/integration_tests/04.CreateBedDeleteBed.exec
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/bin/bash

# TODO CreateBed does not return name, but the proto has it declared

echo "Room does not exist"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{"room_id": "4d9d91df-b3ec-4ff7-a243-1e467f8ca595", "name": "Some Name"}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/CreateBed 2>&1 || echo ""

echo "Room does exist"
out=$(grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{"room_id": "2a3b9111-1f78-4d36-8318-1c69c1e5ad51", "name": "Some Name"}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/CreateBed)

echo "list beds"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBeds | jq '.beds |= map(if .name == "Some Name" then .id = "RANDOM UUID" else . end)'

echo "delete it again"
id=$(echo $out | jq '.id')

grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d "{\"id\": $id}" \
localhost:3001 \
proto.services.task_svc.v1.BedService/DeleteBed

echo "list beds"
grpcurl --plaintext -H "X-Organization: 3b25c6f5-4705-4074-9fc6-a50c28eba406" \
-H "Authorization: Bearer eyJzdWIiOiIxODE1OTcxMy01ZDRlLTRhZDUtOTRhZC1mYmI2YmIxNDc5ODQiLCJlbWFpbCI6InRlc3RpbmUudGVzdEBoZWxwd2F2ZS5kZSIsIm5hbWUiOiJUZXN0aW5lIFRlc3QiLCJuaWNrbmFtZSI6InRlc3RpbmUudGVzdCIsIm9yZ2FuaXphdGlvbnMiOlsiM2IyNWM2ZjUtNDcwNS00MDc0LTlmYzYtYTUwYzI4ZWJhNDA2Il19" \
-d '{}' \
localhost:3001 \
proto.services.task_svc.v1.BedService/GetBeds

153 changes: 153 additions & 0 deletions services/task-svc/integration_tests/04.CreateBedDeleteBed.expected

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 97987be

Please sign in to comment.