mirror of
https://github.com/TeamPiped/Piped-Backend.git
synced 2025-04-28 16:00:29 +05:30
Add script and CI to automatically test backend changes. (#127)
This commit is contained in:
parent
08cead806d
commit
f3ffe6f1e4
@ -2,6 +2,7 @@
|
|||||||
build
|
build
|
||||||
bin
|
bin
|
||||||
Dockerfile
|
Dockerfile
|
||||||
|
Dockerfile.*
|
||||||
*.bat
|
*.bat
|
||||||
LICENSE
|
LICENSE
|
||||||
*.md
|
*.md
|
||||||
|
21
.github/workflows/docker-build-test.yml
vendored
Normal file
21
.github/workflows/docker-build-test.yml
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
name: Docker-Compose Build and Test
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
paths-ignore:
|
||||||
|
- "**.md"
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build-hotspot-test:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2.4.0
|
||||||
|
with:
|
||||||
|
fetch-depth: 0
|
||||||
|
- name: Build Locally
|
||||||
|
run: docker build . -t 1337kavin/piped:latest
|
||||||
|
- name: Start Docker-Compose services
|
||||||
|
run: docker-compose up -d && sleep 5
|
||||||
|
- name: Run tests
|
||||||
|
run: ./api-test.sh
|
79
api-test.sh
Executable file
79
api-test.sh
Executable file
@ -0,0 +1,79 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
CURLOPTS=(-i -s -S -o /dev/null -f -w "%{http_code}\tTime:\t%{time_starttransfer}\t%{url_effective}\n")
|
||||||
|
HOST=127.0.0.1:8080
|
||||||
|
|
||||||
|
# Trending Page
|
||||||
|
curl ${CURLOPTS[@]} $HOST/trending?region=US || exit 1
|
||||||
|
|
||||||
|
# Channel Pages
|
||||||
|
curl ${CURLOPTS[@]} $HOST/channel/UCsXVk37bltHxD1rDPwtNM8Q || exit 1
|
||||||
|
curl ${CURLOPTS[@]} $HOST/c/inanutshell || exit 1
|
||||||
|
curl ${CURLOPTS[@]} $HOST/user/Kurzgesagt || exit 1
|
||||||
|
|
||||||
|
# Channel Nextpage
|
||||||
|
CHANNEL_NEXTPAGE=$(curl -s -o - -f $HOST/channel/UCsXVk37bltHxD1rDPwtNM8Q | jq -r .nextpage)
|
||||||
|
curl ${CURLOPTS[@]} $HOST/nextpage/channel/UCsXVk37bltHxD1rDPwtNM8Q -G --data-urlencode "nextpage=$CHANNEL_NEXTPAGE" || exit 1
|
||||||
|
|
||||||
|
# Playlist
|
||||||
|
curl ${CURLOPTS[@]} $HOST/playlists/PLQSoWXSpjA3-egtFq45DcUydZ885W7MTT || exit 1
|
||||||
|
|
||||||
|
# Playlist Nextpage
|
||||||
|
PLAYLIST_NEXTPAGE=$(curl -s -o - -f $HOST/playlists/PLQSoWXSpjA3-egtFq45DcUydZ885W7MTT | jq -r .nextpage)
|
||||||
|
curl ${CURLOPTS[@]} $HOST/nextpage/playlists/UCsXVk37bltHxD1rDPwtNM8Q -G --data-urlencode "nextpage=$PLAYLIST_NEXTPAGE" || exit 1
|
||||||
|
|
||||||
|
# Streams
|
||||||
|
curl ${CURLOPTS[@]} $HOST/streams/BtN-goy9VOY || exit 1
|
||||||
|
|
||||||
|
# Comments
|
||||||
|
curl ${CURLOPTS[@]} $HOST/comments/BtN-goy9VOY || exit 1
|
||||||
|
|
||||||
|
# Comments Nextpage
|
||||||
|
COMMENTS_NEXTPAGE=$(curl -s -o - -f $HOST/comments/BtN-goy9VOY | jq -r .nextpage)
|
||||||
|
curl ${CURLOPTS[@]} $HOST/nextpage/comments/BtN-goy9VOY -G --data-urlencode "nextpage=$COMMENTS_NEXTPAGE" || exit 1
|
||||||
|
|
||||||
|
# Comments Repliespage
|
||||||
|
COMMENTS_REPLIESPAGE=$(curl -s -o - -f $HOST/comments/BtN-goy9VOY | jq -r .comments[0].repliesPage)
|
||||||
|
curl ${CURLOPTS[@]} $HOST/nextpage/comments/BtN-goy9VOY -G --data-urlencode "nextpage=$COMMENTS_REPLIESPAGE" || exit 1
|
||||||
|
|
||||||
|
# Comments Replies Nextpage
|
||||||
|
COMMENTS_REPLIES_NEXTPAGE=$(curl -s -o - -f $HOST/nextpage/comments/BtN-goy9VOY -G --data-urlencode "nextpage=$COMMENTS_REPLIESPAGE" | jq -r .nextpage)
|
||||||
|
curl ${CURLOPTS[@]} $HOST/nextpage/comments/BtN-goy9VOY -G --data-urlencode "nextpage=$COMMENTS_REPLIES_NEXTPAGE" || exit 1
|
||||||
|
|
||||||
|
USER=admin
|
||||||
|
PASS=$(openssl rand -base64 12)
|
||||||
|
|
||||||
|
echo $USER
|
||||||
|
|
||||||
|
AUTH_REQ=$(jq -n --compact-output --arg username "$USER" --arg password "$PASS" '{"username": $username, "password": $password}')
|
||||||
|
|
||||||
|
# Register Account
|
||||||
|
curl ${CURLOPTS[@]} $HOST/register -X POST -H "Content-Type: application/json" -d $AUTH_REQ || exit 1
|
||||||
|
|
||||||
|
# Login Account
|
||||||
|
curl ${CURLOPTS[@]} $HOST/login -X POST -H "Content-Type: application/json" -d $AUTH_REQ || exit 1
|
||||||
|
|
||||||
|
AUTH_TOKEN=$(curl -s -o - -f $HOST/login -X POST -H "Content-Type: application/json" -d $AUTH_REQ | jq -r .token)
|
||||||
|
|
||||||
|
if [[ -z "$AUTH_TOKEN" || $AUTH_TOKEN == "null" ]]; then
|
||||||
|
echo "Failed to get auth token"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check Subscription Status
|
||||||
|
curl ${CURLOPTS[@]} $HOST/subscribed -G --data-urlencode "channelId=UCsXVk37bltHxD1rDPwtNM8Q" -H "Authorization: $AUTH_TOKEN" || exit 1
|
||||||
|
|
||||||
|
# Subscribe to a Channel
|
||||||
|
curl ${CURLOPTS[@]} $HOST/subscribe -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg channelId "UCfdNM3NAhaBOXCafH7krzrA" '{"channelId": $channelId}') || exit 1
|
||||||
|
|
||||||
|
# Unsubscribe from the Channel
|
||||||
|
curl ${CURLOPTS[@]} $HOST/unsubscribe -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg channelId "UCfdNM3NAhaBOXCafH7krzrA" '{"channelId": $channelId}') || exit 1
|
||||||
|
|
||||||
|
# Resubscribe to the Channel
|
||||||
|
curl ${CURLOPTS[@]} $HOST/subscribe -X POST -H "Content-Type: application/json" -H "Authorization: $AUTH_TOKEN" -d $(jq -n --compact-output --arg channelId "UCfdNM3NAhaBOXCafH7krzrA" '{"channelId": $channelId}') || exit 1
|
||||||
|
|
||||||
|
# Wait 2s to allow the subscription request to be processed
|
||||||
|
sleep 2
|
||||||
|
|
||||||
|
# Check Feed
|
||||||
|
curl ${CURLOPTS[@]} $HOST/feed -G --data-urlencode "authToken=$AUTH_TOKEN" || exit 1
|
Loading…
x
Reference in New Issue
Block a user