mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-12-25 12:21:31 +00:00
Fix tests.
This commit is contained in:
parent
857adb025b
commit
5f2ffeaaca
7 changed files with 38 additions and 16 deletions
|
@ -10,7 +10,7 @@
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"lint": "tsc --noEmit && eslint --report-unused-disable-directives --ext .js,.ts,.tsx src && prettier --check 'src/**/*.ts'",
|
"lint": "tsc --noEmit && eslint --report-unused-disable-directives --ext .js,.ts,.tsx src && prettier --check 'src/**/*.ts'",
|
||||||
"fix": "prettier --write src && eslint --fix src",
|
"fix": "prettier --write src && eslint --fix src",
|
||||||
"api-test": "jest -i follow.spec.ts && jest -i post.spec.ts && jest -i comment.spec.ts && jest -i private_message.spec.ts && jest -i user.spec.ts && jest -i community.spec.ts && jest -i image.spec.ts",
|
"api-test": "jest -i follow.spec.ts && jest -i image.spec.ts && jest -i user.spec.ts && jest -i private_message.spec.ts && jest -i community.spec.ts && jest -i post.spec.ts && jest -i comment.spec.ts ",
|
||||||
"api-test-follow": "jest -i follow.spec.ts",
|
"api-test-follow": "jest -i follow.spec.ts",
|
||||||
"api-test-comment": "jest -i comment.spec.ts",
|
"api-test-comment": "jest -i comment.spec.ts",
|
||||||
"api-test-post": "jest -i post.spec.ts",
|
"api-test-post": "jest -i post.spec.ts",
|
||||||
|
|
|
@ -45,7 +45,6 @@ let postOnAlphaRes: PostResponse;
|
||||||
|
|
||||||
beforeAll(async () => {
|
beforeAll(async () => {
|
||||||
await setupLogins();
|
await setupLogins();
|
||||||
await unfollows();
|
|
||||||
await Promise.all([followBeta(alpha), followBeta(gamma)]);
|
await Promise.all([followBeta(alpha), followBeta(gamma)]);
|
||||||
betaCommunity = (await resolveBetaCommunity(alpha)).community;
|
betaCommunity = (await resolveBetaCommunity(alpha)).community;
|
||||||
if (betaCommunity) {
|
if (betaCommunity) {
|
||||||
|
|
|
@ -380,8 +380,8 @@ test("User blocks instance, communities are hidden", async () => {
|
||||||
test("Community follower count is federated", async () => {
|
test("Community follower count is federated", async () => {
|
||||||
// Follow the beta community from alpha
|
// Follow the beta community from alpha
|
||||||
let community = await createCommunity(beta);
|
let community = await createCommunity(beta);
|
||||||
let community_id = community.community_view.community.actor_id;
|
let communityActorId = community.community_view.community.actor_id;
|
||||||
let resolved = await resolveCommunity(alpha, community_id);
|
let resolved = await resolveCommunity(alpha, communityActorId);
|
||||||
if (!resolved.community) {
|
if (!resolved.community) {
|
||||||
throw "Missing beta community";
|
throw "Missing beta community";
|
||||||
}
|
}
|
||||||
|
@ -389,7 +389,7 @@ test("Community follower count is federated", async () => {
|
||||||
await followCommunity(alpha, true, resolved.community.community.id);
|
await followCommunity(alpha, true, resolved.community.community.id);
|
||||||
let followed = (
|
let followed = (
|
||||||
await waitUntil(
|
await waitUntil(
|
||||||
() => resolveCommunity(alpha, community_id),
|
() => resolveCommunity(alpha, communityActorId),
|
||||||
c => c.community?.subscribed === "Subscribed",
|
c => c.community?.subscribed === "Subscribed",
|
||||||
)
|
)
|
||||||
).community;
|
).community;
|
||||||
|
@ -398,7 +398,7 @@ test("Community follower count is federated", async () => {
|
||||||
expect(followed?.counts.subscribers).toBe(1);
|
expect(followed?.counts.subscribers).toBe(1);
|
||||||
|
|
||||||
// Follow the community from gamma
|
// Follow the community from gamma
|
||||||
resolved = await resolveCommunity(gamma, community_id);
|
resolved = await resolveCommunity(gamma, communityActorId);
|
||||||
if (!resolved.community) {
|
if (!resolved.community) {
|
||||||
throw "Missing beta community";
|
throw "Missing beta community";
|
||||||
}
|
}
|
||||||
|
@ -406,7 +406,7 @@ test("Community follower count is federated", async () => {
|
||||||
await followCommunity(gamma, true, resolved.community.community.id);
|
await followCommunity(gamma, true, resolved.community.community.id);
|
||||||
followed = (
|
followed = (
|
||||||
await waitUntil(
|
await waitUntil(
|
||||||
() => resolveCommunity(gamma, community_id),
|
() => resolveCommunity(gamma, communityActorId),
|
||||||
c => c.community?.subscribed === "Subscribed",
|
c => c.community?.subscribed === "Subscribed",
|
||||||
)
|
)
|
||||||
).community;
|
).community;
|
||||||
|
@ -415,7 +415,7 @@ test("Community follower count is federated", async () => {
|
||||||
expect(followed?.counts?.subscribers).toBe(2);
|
expect(followed?.counts?.subscribers).toBe(2);
|
||||||
|
|
||||||
// Follow the community from delta
|
// Follow the community from delta
|
||||||
resolved = await resolveCommunity(delta, community_id);
|
resolved = await resolveCommunity(delta, communityActorId);
|
||||||
if (!resolved.community) {
|
if (!resolved.community) {
|
||||||
throw "Missing beta community";
|
throw "Missing beta community";
|
||||||
}
|
}
|
||||||
|
@ -423,7 +423,7 @@ test("Community follower count is federated", async () => {
|
||||||
await followCommunity(delta, true, resolved.community.community.id);
|
await followCommunity(delta, true, resolved.community.community.id);
|
||||||
followed = (
|
followed = (
|
||||||
await waitUntil(
|
await waitUntil(
|
||||||
() => resolveCommunity(delta, community_id),
|
() => resolveCommunity(delta, communityActorId),
|
||||||
c => c.community?.subscribed === "Subscribed",
|
c => c.community?.subscribed === "Subscribed",
|
||||||
)
|
)
|
||||||
).community;
|
).community;
|
||||||
|
|
|
@ -36,7 +36,10 @@ const downloadFileSync = require("download-file-sync");
|
||||||
|
|
||||||
beforeAll(setupLogins);
|
beforeAll(setupLogins);
|
||||||
|
|
||||||
afterAll(unfollows);
|
afterAll(async () => {
|
||||||
|
await unfollows();
|
||||||
|
await deleteAllImages(alpha);
|
||||||
|
});
|
||||||
|
|
||||||
test("Upload image and delete it", async () => {
|
test("Upload image and delete it", async () => {
|
||||||
// Before running this test, you need to delete all previous images in the DB
|
// Before running this test, you need to delete all previous images in the DB
|
||||||
|
@ -159,7 +162,6 @@ test("Purge post, linked image removed", async () => {
|
||||||
expect(post.post_view.post.url).toBe(upload.url);
|
expect(post.post_view.post.url).toBe(upload.url);
|
||||||
|
|
||||||
// purge post
|
// purge post
|
||||||
|
|
||||||
const purgeForm: PurgePost = {
|
const purgeForm: PurgePost = {
|
||||||
post_id: post.post_view.post.id,
|
post_id: post.post_view.post.id,
|
||||||
};
|
};
|
||||||
|
|
|
@ -48,7 +48,6 @@ beforeAll(async () => {
|
||||||
await setupLogins();
|
await setupLogins();
|
||||||
betaCommunity = (await resolveBetaCommunity(alpha)).community;
|
betaCommunity = (await resolveBetaCommunity(alpha)).community;
|
||||||
expect(betaCommunity).toBeDefined();
|
expect(betaCommunity).toBeDefined();
|
||||||
await unfollows();
|
|
||||||
});
|
});
|
||||||
|
|
||||||
afterAll(unfollows);
|
afterAll(unfollows);
|
||||||
|
@ -83,10 +82,7 @@ async function assertPostFederation(postOne: PostView, postTwo: PostView) {
|
||||||
|
|
||||||
test("Create a post", async () => {
|
test("Create a post", async () => {
|
||||||
// Setup some allowlists and blocklists
|
// Setup some allowlists and blocklists
|
||||||
let editSiteForm: EditSite = {
|
let editSiteForm: EditSite = {};
|
||||||
allowed_instances: ["lemmy-beta"],
|
|
||||||
};
|
|
||||||
await delta.editSite(editSiteForm);
|
|
||||||
|
|
||||||
editSiteForm.allowed_instances = [];
|
editSiteForm.allowed_instances = [];
|
||||||
editSiteForm.blocked_instances = ["lemmy-alpha"];
|
editSiteForm.blocked_instances = ["lemmy-alpha"];
|
||||||
|
|
|
@ -182,6 +182,10 @@ export async function setupLogins() {
|
||||||
];
|
];
|
||||||
await gamma.editSite(editSiteForm);
|
await gamma.editSite(editSiteForm);
|
||||||
|
|
||||||
|
// Setup delta allowed instance
|
||||||
|
editSiteForm.allowed_instances = ["lemmy-beta"];
|
||||||
|
await delta.editSite(editSiteForm);
|
||||||
|
|
||||||
// Create the main alpha/beta communities
|
// Create the main alpha/beta communities
|
||||||
// Ignore thrown errors of duplicates
|
// Ignore thrown errors of duplicates
|
||||||
try {
|
try {
|
||||||
|
@ -762,6 +766,7 @@ export async function unfollowRemotes(
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
remoteFollowed.map(cu => followCommunity(api, false, cu.community.id)),
|
remoteFollowed.map(cu => followCommunity(api, false, cu.community.id)),
|
||||||
);
|
);
|
||||||
|
|
||||||
let siteRes = await getSite(api);
|
let siteRes = await getSite(api);
|
||||||
return siteRes;
|
return siteRes;
|
||||||
}
|
}
|
||||||
|
@ -909,6 +914,25 @@ export async function unfollows() {
|
||||||
unfollowRemotes(delta),
|
unfollowRemotes(delta),
|
||||||
unfollowRemotes(epsilon),
|
unfollowRemotes(epsilon),
|
||||||
]);
|
]);
|
||||||
|
await purgeAllPosts(alpha);
|
||||||
|
await purgeAllPosts(beta);
|
||||||
|
await purgeAllPosts(gamma);
|
||||||
|
await purgeAllPosts(delta);
|
||||||
|
await purgeAllPosts(epsilon);
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function purgeAllPosts(api: LemmyHttp) {
|
||||||
|
// The best way to get all federated items, is to find the posts
|
||||||
|
let res = await api.getPosts({ type_: "All", limit: 50 });
|
||||||
|
await Promise.all(
|
||||||
|
res.posts
|
||||||
|
.map(p => p.post.id)
|
||||||
|
// Unique
|
||||||
|
.filter((v, i, a) => a.indexOf(v) == i)
|
||||||
|
.map(post_id => api.purgePost({ post_id }))
|
||||||
|
// Ignore errors
|
||||||
|
.map(p => p.catch(e => e)),
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getCommentParentId(comment: Comment): number | undefined {
|
export function getCommentParentId(comment: Comment): number | undefined {
|
||||||
|
|
|
@ -21,6 +21,7 @@ import {
|
||||||
fetchFunction,
|
fetchFunction,
|
||||||
alphaImage,
|
alphaImage,
|
||||||
unfollows,
|
unfollows,
|
||||||
|
deleteAllImages,
|
||||||
} from "./shared";
|
} from "./shared";
|
||||||
import { LemmyHttp, SaveUserSettings, UploadImage } from "lemmy-js-client";
|
import { LemmyHttp, SaveUserSettings, UploadImage } from "lemmy-js-client";
|
||||||
import { GetPosts } from "lemmy-js-client/dist/types/GetPosts";
|
import { GetPosts } from "lemmy-js-client/dist/types/GetPosts";
|
||||||
|
|
Loading…
Reference in a new issue