TMPDIR=$(mktemp -d) trap "rm -fr $TMPDIR" EXIT function star_count() { local curl=$1 local host_port=$2 local count=$3 $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 # $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 star_count $TWO_CURL $TWO_HOST_PORT 1