69d2fcb43e
* refactor: asset media endpoints * refactor: mobile upload livePhoto as separate request * refactor: change mobile backup flow to use new asset upload endpoints * chore: format and analyze dart code * feat: mark motion as hidden when linked * feat: upload video portion of live photo before image portion * fix: incorrect assetApi calls in mobile code * fix: download asset --------- Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com> Co-authored-by: Zack Pollard <zackpollard@ymail.com>
61 lines
2.3 KiB
TypeScript
61 lines
2.3 KiB
TypeScript
import { AssetMediaResponseDto, LoginResponseDto, SharedLinkType } from '@immich/sdk';
|
|
import { expect, test } from '@playwright/test';
|
|
import { utils } from 'src/utils';
|
|
|
|
test.describe('Detail Panel', () => {
|
|
let admin: LoginResponseDto;
|
|
let asset: AssetMediaResponseDto;
|
|
|
|
test.beforeAll(async () => {
|
|
utils.initSdk();
|
|
await utils.resetDatabase();
|
|
admin = await utils.adminSetup();
|
|
asset = await utils.createAsset(admin.accessToken);
|
|
});
|
|
|
|
test('can be opened for shared links', async ({ page }) => {
|
|
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
|
type: SharedLinkType.Individual,
|
|
assetIds: [asset.id],
|
|
});
|
|
await page.goto(`/share/${sharedLink.key}/photos/${asset.id}`);
|
|
await page.waitForSelector('#immich-asset-viewer');
|
|
|
|
await expect(page.getByRole('button', { name: 'Info' })).toBeVisible();
|
|
await page.keyboard.press('i');
|
|
await expect(page.locator('#detail-panel')).toBeVisible();
|
|
await page.keyboard.press('i');
|
|
await expect(page.locator('#detail-panel')).toHaveCount(0);
|
|
});
|
|
|
|
test('cannot be opened for shared links with hidden metadata', async ({ page }) => {
|
|
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
|
type: SharedLinkType.Individual,
|
|
assetIds: [asset.id],
|
|
showMetadata: false,
|
|
});
|
|
await page.goto(`/share/${sharedLink.key}/photos/${asset.id}`);
|
|
await page.waitForSelector('#immich-asset-viewer');
|
|
|
|
await expect(page.getByRole('button', { name: 'Info' })).toHaveCount(0);
|
|
await page.keyboard.press('i');
|
|
await expect(page.locator('#detail-panel')).toHaveCount(0);
|
|
await page.keyboard.press('i');
|
|
await expect(page.locator('#detail-panel')).toHaveCount(0);
|
|
});
|
|
|
|
test('description is visible for owner on shared links', async ({ context, page }) => {
|
|
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
|
type: SharedLinkType.Individual,
|
|
assetIds: [asset.id],
|
|
});
|
|
await utils.setAuthCookies(context, admin.accessToken);
|
|
await page.goto(`/share/${sharedLink.key}/photos/${asset.id}`);
|
|
|
|
const textarea = page.getByRole('textbox', { name: 'Add a description' });
|
|
await page.getByRole('button', { name: 'Info' }).click();
|
|
await expect(textarea).toBeVisible();
|
|
await expect(textarea).not.toBeDisabled();
|
|
});
|
|
});
|