chore: e2e test

This commit is contained in:
Alex Tran
2026-03-29 13:42:10 +00:00
parent 6876eb2f05
commit 17b3676038
2 changed files with 40 additions and 0 deletions
@@ -424,6 +424,7 @@ describe('/albums', () => {
description: '',
albumThumbnailAssetId: null,
shared: false,
isFavorite: false,
albumUsers: [],
hasSharedLink: false,
assets: [],
@@ -540,6 +541,44 @@ describe('/albums', () => {
});
});
describe('PATCH /albums/:id/user-metadata', () => {
it('should toggle favorite status per user on a shared album', async () => {
const before = await getAlbumInfo({ id: user1Albums[3].id }, { headers: asBearerAuth(user2.accessToken) });
expect(before.isFavorite).toBe(false);
const favoriteResponse = await request(app)
.patch(`/albums/${user1Albums[3].id}/user-metadata`)
.set('Authorization', `Bearer ${user2.accessToken}`)
.send({ isFavorite: true });
expect(favoriteResponse.status).toBe(200);
expect(favoriteResponse.body).toMatchObject({ id: user1Albums[3].id, isFavorite: true });
const favoritedForViewer = await getAlbumInfo(
{ id: user1Albums[3].id },
{ headers: asBearerAuth(user2.accessToken) },
);
const unchangedForOwner = await getAlbumInfo(
{ id: user1Albums[3].id },
{ headers: asBearerAuth(user1.accessToken) },
);
expect(favoritedForViewer.isFavorite).toBe(true);
expect(unchangedForOwner.isFavorite).toBe(false);
const unfavoriteResponse = await request(app)
.patch(`/albums/${user1Albums[3].id}/user-metadata`)
.set('Authorization', `Bearer ${user2.accessToken}`)
.send({ isFavorite: false });
expect(unfavoriteResponse.status).toBe(200);
expect(unfavoriteResponse.body).toMatchObject({ id: user1Albums[3].id, isFavorite: false });
const after = await getAlbumInfo({ id: user1Albums[3].id }, { headers: asBearerAuth(user2.accessToken) });
expect(after.isFavorite).toBe(false);
});
});
describe('DELETE /albums/:id/assets', () => {
it('should require authorization', async () => {
const { status, body } = await request(app)
@@ -427,6 +427,7 @@ export function getAlbum(
albumUsers: [], // Empty array for non-shared album
shared: false,
hasSharedLink: false,
isFavorite: false,
isActivityEnabled: true,
assetCount: albumAssets.length,
assets: albumAssets,