@ -1,5 +1,6 @@
jest . setTimeout ( 120000 ) ;
import { LemmyHttp } from "lemmy-js-client" ;
import {
alpha ,
setupLogins ,
@ -8,6 +9,9 @@ import {
unfollowRemotes ,
getSite ,
waitUntil ,
beta ,
registerUser ,
betaUrl ,
} from "./shared" ;
beforeAll ( setupLogins ) ;
@ -16,12 +20,35 @@ afterAll(() => {
unfollowRemotes ( alpha ) ;
} ) ;
test ( "Follow local community" , async ( ) = > {
let userRes = await registerUser ( beta ) ;
expect ( userRes . jwt ) . toBeDefined ( ) ;
let user = new LemmyHttp ( betaUrl , {
headers : { Authorization : ` Bearer ${ userRes . jwt ? ? "" } ` } ,
} ) ;
let community = ( await resolveBetaCommunity ( user ) ) . community ! ;
expect ( community . counts . subscribers ) . toBe ( 1 ) ;
let follow = await followCommunity ( user , true , community . community . id ) ;
// Make sure the follow response went through
expect ( follow . community_view . community . local ) . toBe ( true ) ;
expect ( follow . community_view . subscribed ) . toBe ( "Subscribed" ) ;
expect ( follow . community_view . counts . subscribers ) . toBe ( 2 ) ;
// Test an unfollow
let unfollow = await followCommunity ( user , false , community . community . id ) ;
expect ( unfollow . community_view . subscribed ) . toBe ( "NotSubscribed" ) ;
expect ( unfollow . community_view . counts . subscribers ) . toBe ( 1 ) ;
} ) ;
test ( "Follow federated community" , async ( ) = > {
let betaCommunity = ( await resolveBetaCommunity ( alpha ) ) . community ;
if ( ! betaCommunity ) {
throw "Missing beta community" ;
}
await followCommunity ( alpha , true , betaCommunity . community . id ) ;
let follow = await followCommunity ( alpha , true , betaCommunity . community . id ) ;
expect ( follow . community_view . subscribed ) . toBe ( "Pending" ) ;
betaCommunity = (
await waitUntil (
( ) = > resolveBetaCommunity ( alpha ) ,
@ -34,6 +61,10 @@ test("Follow federated community", async () => {
expect ( betaCommunity ? . community . name ) . toBe ( "main" ) ;
expect ( betaCommunity ? . subscribed ) . toBe ( "Subscribed" ) ;
// check that unfollow was federated
let communityOnBeta1 = await resolveBetaCommunity ( beta ) ;
expect ( communityOnBeta1 . community ? . counts . subscribers ) . toBe ( 2 ) ;
// Check it from local
let site = await getSite ( alpha ) ;
let remoteCommunityId = site . my_user ? . follows . find (
@ -53,4 +84,8 @@ test("Follow federated community", async () => {
// Make sure you are unsubbed locally
let siteUnfollowCheck = await getSite ( alpha ) ;
expect ( siteUnfollowCheck . my_user ? . follows . length ) . toBe ( 1 ) ;
// check that unfollow was federated
let communityOnBeta2 = await resolveBetaCommunity ( beta ) ;
expect ( communityOnBeta2 . community ? . counts . subscribers ) . toBe ( 1 ) ;
} ) ;