end-to-end/federation/scenario-star/run.sh

48 lines
1.4 KiB
Bash
Raw Normal View History

TMPDIR=$(mktemp -d)
trap "rm -fr $TMPDIR" EXIT
source $SCENARIO_DIR/../../lib/lib.sh
function star_count() {
local curl=$1
local host_port=$2
local count=$3
2024-08-07 08:31:33 +02:00
$curl api_json http://$host_port/api/v1/repos/root/test >$TMPDIR/count.json
if test $count != $(jq -r .stars_count <$TMPDIR/count.json); then
jq . <$TMPDIR/count.json
return 1
fi
}
#
# create a repo on each instance
#
2024-08-07 08:31:33 +02:00
$ONE_CURL api_json --data '{"name":"test","auto_init":true}' $ONE_HOST_PORT/api/v1/user/repos >$TMPDIR/one-repo.json
one_repo_id=$(jq -r .id <$TMPDIR/one-repo.json)
$TWO_CURL api_json --data '{"name":"test","auto_init":true}' $TWO_HOST_PORT/api/v1/user/repos >$TMPDIR/two-repo.json
two_repo_id=$(jq -r .id <$TMPDIR/two-repo.json)
#
# the repo in instance two is federated with the repo in instance one
#
$ONE_CURL web --form action=federation --form following_repos=http://$TWO_HOST_PORT/api/v1/activitypub/repository-id/$two_repo_id http://$ONE_HOST_PORT/root/test/settings
#
# check that both repo have 0 star
#
star_count $ONE_CURL $ONE_HOST_PORT 0
star_count $TWO_CURL $TWO_HOST_PORT 0
#
# star the repo on instance one and expect the star to show on instance two
#
$ONE_CURL api_json -X PUT $ONE_HOST_PORT/api/v1/user/starred/root/test
#
# check that both repo have 1 star
#
star_count $ONE_CURL $ONE_HOST_PORT 1
retry star_count $TWO_CURL $TWO_HOST_PORT 1