mirror of
https://github.com/immich-app/immich.git
synced 2025-10-24 23:39:03 -04:00
* add setting switch this isnt bound to anything yet * make google casting opt-in * doc updates * lint docs * remove unneeded translation items * update mobile openai defs * fix failing test we need to mock user prefs since CastButton uses it
69 lines
2.2 KiB
TypeScript
69 lines
2.2 KiB
TypeScript
import { preferences as preferencesStore, resetSavedUser, user as userStore } from '$lib/stores/user.store';
|
|
import { assetFactory } from '@test-data/factories/asset-factory';
|
|
import { preferencesFactory } from '@test-data/factories/preferences-factory';
|
|
import { userAdminFactory } from '@test-data/factories/user-factory';
|
|
import '@testing-library/jest-dom';
|
|
import { render } from '@testing-library/svelte';
|
|
import AssetViewerNavBar from './asset-viewer-nav-bar.svelte';
|
|
|
|
describe('AssetViewerNavBar component', () => {
|
|
const additionalProps = {
|
|
showCopyButton: false,
|
|
showZoomButton: false,
|
|
showDetailButton: false,
|
|
showDownloadButton: false,
|
|
showMotionPlayButton: false,
|
|
showShareButton: false,
|
|
preAction: () => {},
|
|
onZoomImage: () => {},
|
|
onCopyImage: () => {},
|
|
onAction: () => {},
|
|
onRunJob: () => {},
|
|
onPlaySlideshow: () => {},
|
|
onShowDetail: () => {},
|
|
onClose: () => {},
|
|
};
|
|
|
|
beforeAll(() => {
|
|
Element.prototype.animate = vi.fn().mockImplementation(() => ({
|
|
cancel: () => {},
|
|
}));
|
|
vi.stubGlobal(
|
|
'ResizeObserver',
|
|
vi.fn(() => ({ observe: vi.fn(), unobserve: vi.fn(), disconnect: vi.fn() })),
|
|
);
|
|
});
|
|
|
|
afterEach(() => {
|
|
resetSavedUser();
|
|
});
|
|
|
|
afterAll(() => {
|
|
vi.restoreAllMocks();
|
|
});
|
|
|
|
it('shows back button', () => {
|
|
const prefs = preferencesFactory.build({ cast: { gCastEnabled: false } });
|
|
preferencesStore.set(prefs);
|
|
|
|
const asset = assetFactory.build({ isTrashed: false });
|
|
const { getByTitle } = render(AssetViewerNavBar, { asset, ...additionalProps });
|
|
expect(getByTitle('go_back')).toBeInTheDocument();
|
|
});
|
|
|
|
describe('if the current user owns the asset', () => {
|
|
it('shows delete button', () => {
|
|
const ownerId = 'id-of-the-user';
|
|
const user = userAdminFactory.build({ id: ownerId });
|
|
const asset = assetFactory.build({ ownerId, isTrashed: false });
|
|
userStore.set(user);
|
|
|
|
const prefs = preferencesFactory.build({ cast: { gCastEnabled: false } });
|
|
preferencesStore.set(prefs);
|
|
|
|
const { getByTitle } = render(AssetViewerNavBar, { asset, ...additionalProps });
|
|
expect(getByTitle('delete')).toBeInTheDocument();
|
|
});
|
|
});
|
|
});
|