mirror of
https://github.com/immich-app/immich.git
synced 2025-12-13 09:13:17 +03:00
66 lines
2.3 KiB
TypeScript
66 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('Asset Viewer Navbar', () => {
|
|
let admin: LoginResponseDto;
|
|
let asset: AssetMediaResponseDto;
|
|
|
|
test.beforeAll(async () => {
|
|
utils.initSdk();
|
|
await utils.resetDatabase();
|
|
admin = await utils.adminSetup();
|
|
});
|
|
|
|
test.beforeEach(async () => {
|
|
asset = await utils.createAsset(admin.accessToken);
|
|
});
|
|
|
|
test.describe('shared link without metadata', () => {
|
|
test('visible guest actions', 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');
|
|
|
|
const expected = ['Zoom Image', 'Copy Image', 'Download'];
|
|
const buttons = await page.getByTestId('asset-viewer-navbar-actions').getByRole('button').all();
|
|
|
|
for (const [i, button] of buttons.entries()) {
|
|
await expect(button).toHaveAccessibleName(expected[i]);
|
|
}
|
|
});
|
|
|
|
test('visible owner actions', async ({ context, page }) => {
|
|
const sharedLink = await utils.createSharedLink(admin.accessToken, {
|
|
type: SharedLinkType.Individual,
|
|
assetIds: [asset.id],
|
|
showMetadata: false,
|
|
});
|
|
await utils.setAuthCookies(context, admin.accessToken);
|
|
await page.goto(`/share/${sharedLink.key}/photos/${asset.id}`);
|
|
await page.waitForSelector('#immich-asset-viewer');
|
|
|
|
const expected = ['Share', 'Zoom Image', 'Copy Image', 'Download'];
|
|
const buttons = await page.getByTestId('asset-viewer-navbar-actions').getByRole('button').all();
|
|
|
|
for (const [i, button] of buttons.entries()) {
|
|
await expect(button).toHaveAccessibleName(expected[i]);
|
|
}
|
|
});
|
|
});
|
|
|
|
test.describe('actions', () => {
|
|
test('favorite asset with shortcut', async ({ context, page }) => {
|
|
await utils.setAuthCookies(context, admin.accessToken);
|
|
await page.goto(`/photos/${asset.id}`);
|
|
await page.waitForSelector('#immich-asset-viewer');
|
|
await page.keyboard.press('f');
|
|
await expect(page.getByText('Added to favorites')).toBeVisible();
|
|
});
|
|
});
|
|
});
|