|
|
|
|
@ -611,6 +611,53 @@ test.describe('Timeline', () => {
|
|
|
|
|
await page.getByText('Photos', { exact: true }).click();
|
|
|
|
|
await thumbnailUtils.expectInViewport(page, assetToArchive.id);
|
|
|
|
|
});
|
|
|
|
|
test('open /archive, favorite photo, unfavorite', async ({ page }) => {
|
|
|
|
|
const assetToFavorite = assets[0];
|
|
|
|
|
changes.assetArchivals.push(assetToFavorite.id);
|
|
|
|
|
await pageUtils.openArchivePage(page);
|
|
|
|
|
const favorite = pageRoutePromise(page, '**/api/assets', async (route, request) => {
|
|
|
|
|
const requestJson = request.postDataJSON();
|
|
|
|
|
if (requestJson.isFavorite === undefined) {
|
|
|
|
|
return await route.continue();
|
|
|
|
|
}
|
|
|
|
|
const isFavorite = requestJson.isFavorite;
|
|
|
|
|
if (isFavorite) {
|
|
|
|
|
changes.assetFavorites.push(...requestJson.ids);
|
|
|
|
|
}
|
|
|
|
|
await route.fulfill({
|
|
|
|
|
status: 204,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
await thumbnailUtils.withAssetId(page, assetToFavorite.id).hover();
|
|
|
|
|
await thumbnailUtils.selectButton(page, assetToFavorite.id).click();
|
|
|
|
|
await page.getByLabel('Favorite').click();
|
|
|
|
|
await expect(favorite).resolves.toEqual({
|
|
|
|
|
isFavorite: true,
|
|
|
|
|
ids: [assetToFavorite.id],
|
|
|
|
|
});
|
|
|
|
|
await expect(thumbnailUtils.withAssetId(page, assetToFavorite.id)).toHaveCount(1);
|
|
|
|
|
await thumbnailUtils.expectInViewport(page, assetToFavorite.id);
|
|
|
|
|
await thumbnailUtils.expectThumbnailIsFavorite(page, assetToFavorite.id);
|
|
|
|
|
await thumbnailUtils.withAssetId(page, assetToFavorite.id).hover();
|
|
|
|
|
await thumbnailUtils.selectButton(page, assetToFavorite.id).click();
|
|
|
|
|
const unFavoriteRequest = pageRoutePromise(page, '**/api/assets', async (route, request) => {
|
|
|
|
|
const requestJson = request.postDataJSON();
|
|
|
|
|
if (requestJson.isFavorite === undefined) {
|
|
|
|
|
return await route.continue();
|
|
|
|
|
}
|
|
|
|
|
changes.assetFavorites = changes.assetFavorites.filter((id) => !requestJson.ids.includes(id));
|
|
|
|
|
await route.fulfill({
|
|
|
|
|
status: 204,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
await page.getByLabel('Remove from favorites').click();
|
|
|
|
|
await expect(unFavoriteRequest).resolves.toEqual({
|
|
|
|
|
isFavorite: false,
|
|
|
|
|
ids: [assetToFavorite.id],
|
|
|
|
|
});
|
|
|
|
|
await expect(thumbnailUtils.withAssetId(page, assetToFavorite.id)).toHaveCount(1);
|
|
|
|
|
await thumbnailUtils.expectThumbnailIsNotFavorite(page, assetToFavorite.id);
|
|
|
|
|
});
|
|
|
|
|
test('open album, archive photo, open album, unarchive', async ({ page }) => {
|
|
|
|
|
const album = timelineRestData.album;
|
|
|
|
|
await pageUtils.openAlbumPage(page, album.id);
|
|
|
|
|
@ -633,8 +680,7 @@ test.describe('Timeline', () => {
|
|
|
|
|
visibility: 'archive',
|
|
|
|
|
ids: [assetToArchive.id],
|
|
|
|
|
});
|
|
|
|
|
console.log('Skipping assertion - TODO - fix that archiving in album doesnt add icon');
|
|
|
|
|
// await thumbnail.expectThumbnailIsArchive(page, assetToArchive.id);
|
|
|
|
|
await thumbnailUtils.expectThumbnailIsArchive(page, assetToArchive.id);
|
|
|
|
|
await page.locator('#asset-selection-app-bar').getByLabel('Close').click();
|
|
|
|
|
await page.getByRole('link').getByText('Archive').click();
|
|
|
|
|
await timelineUtils.waitForTimelineLoad(page);
|
|
|
|
|
@ -656,8 +702,7 @@ test.describe('Timeline', () => {
|
|
|
|
|
visibility: 'timeline',
|
|
|
|
|
ids: [assetToArchive.id],
|
|
|
|
|
});
|
|
|
|
|
console.log('Skipping assertion - TODO - fix bug with not removing asset from timeline-manager after unarchive');
|
|
|
|
|
// await expect(thumbnail.withAssetId(page, assetToArchive.id)).toHaveCount(0);
|
|
|
|
|
await expect(thumbnailUtils.withAssetId(page, assetToArchive.id)).toHaveCount(0);
|
|
|
|
|
await pageUtils.openAlbumPage(page, album.id);
|
|
|
|
|
await thumbnailUtils.expectInViewport(page, assetToArchive.id);
|
|
|
|
|
});
|
|
|
|
|
@ -712,6 +757,50 @@ test.describe('Timeline', () => {
|
|
|
|
|
await page.getByText('Photos', { exact: true }).click();
|
|
|
|
|
await thumbnailUtils.expectInViewport(page, assetToFavorite.id);
|
|
|
|
|
});
|
|
|
|
|
test('open /favorites, archive photo, unarchive photo', async ({ page }) => {
|
|
|
|
|
await pageUtils.openFavorites(page);
|
|
|
|
|
const assetToArchive = getAsset(timelineRestData, 'ad31e29f-2069-4574-b9a9-ad86523c92cb')!;
|
|
|
|
|
await thumbnailUtils.withAssetId(page, assetToArchive.id).hover();
|
|
|
|
|
await thumbnailUtils.selectButton(page, assetToArchive.id).click();
|
|
|
|
|
await page.getByLabel('Menu').click();
|
|
|
|
|
const archive = pageRoutePromise(page, '**/api/assets', async (route, request) => {
|
|
|
|
|
const requestJson = request.postDataJSON();
|
|
|
|
|
if (requestJson.visibility !== 'archive') {
|
|
|
|
|
return await route.continue();
|
|
|
|
|
}
|
|
|
|
|
await route.fulfill({
|
|
|
|
|
status: 204,
|
|
|
|
|
});
|
|
|
|
|
changes.assetArchivals.push(...requestJson.ids);
|
|
|
|
|
});
|
|
|
|
|
await page.getByRole('menuitem').getByText('Archive').click();
|
|
|
|
|
await expect(archive).resolves.toEqual({
|
|
|
|
|
visibility: 'archive',
|
|
|
|
|
ids: [assetToArchive.id],
|
|
|
|
|
});
|
|
|
|
|
await page.getByRole('link').getByText('Archive').click();
|
|
|
|
|
await thumbnailUtils.expectInViewport(page, assetToArchive.id);
|
|
|
|
|
await thumbnailUtils.expectThumbnailIsNotArchive(page, assetToArchive.id);
|
|
|
|
|
await thumbnailUtils.withAssetId(page, assetToArchive.id).hover();
|
|
|
|
|
await thumbnailUtils.selectButton(page, assetToArchive.id).click();
|
|
|
|
|
const unarchiveRequest = pageRoutePromise(page, '**/api/assets', async (route, request) => {
|
|
|
|
|
const requestJson = request.postDataJSON();
|
|
|
|
|
if (requestJson.visibility !== 'timeline') {
|
|
|
|
|
return await route.continue();
|
|
|
|
|
}
|
|
|
|
|
changes.assetArchivals = changes.assetArchivals.filter((id) => !requestJson.ids.includes(id));
|
|
|
|
|
await route.fulfill({
|
|
|
|
|
status: 204,
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
await page.getByLabel('Unarchive').click();
|
|
|
|
|
await expect(unarchiveRequest).resolves.toEqual({
|
|
|
|
|
visibility: 'timeline',
|
|
|
|
|
ids: [assetToArchive.id],
|
|
|
|
|
});
|
|
|
|
|
await expect(thumbnailUtils.withAssetId(page, assetToArchive.id)).toHaveCount(0);
|
|
|
|
|
await thumbnailUtils.expectThumbnailIsNotArchive(page, assetToArchive.id);
|
|
|
|
|
});
|
|
|
|
|
test('Open album, favorite photo, open /favorites, remove favorite, Open album', async ({ page }) => {
|
|
|
|
|
const album = timelineRestData.album;
|
|
|
|
|
await pageUtils.openAlbumPage(page, album.id);
|
|
|
|
|
|