mirror of
https://github.com/immich-app/immich.git
synced 2026-05-22 15:42:32 -04:00
a16d233a0c
* feat: sort imports * fix: something?
70 lines
2.3 KiB
TypeScript
70 lines
2.3 KiB
TypeScript
import '@testing-library/jest-dom';
|
|
import { getResizeObserverMock } from '$lib/__mocks__/resize-observer.mock';
|
|
import { authManager } from '$lib/managers/auth-manager.svelte';
|
|
import { renderWithTooltips } from '$tests/helpers';
|
|
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 AssetViewerNavBar from './AssetViewerNavBar.svelte';
|
|
|
|
describe('AssetViewerNavBar component', () => {
|
|
const additionalProps = {
|
|
preAction: () => {},
|
|
onAction: () => {},
|
|
onPlaySlideshow: () => {},
|
|
onClose: () => {},
|
|
playOriginalVideo: false,
|
|
setPlayOriginalVideo: () => Promise.resolve(),
|
|
};
|
|
|
|
beforeAll(() => {
|
|
Element.prototype.animate = vi.fn().mockImplementation(function () {
|
|
return {
|
|
cancel: () => {},
|
|
};
|
|
});
|
|
vi.stubGlobal('ResizeObserver', getResizeObserverMock());
|
|
vi.mock(import('$lib/managers/feature-flags-manager.svelte'), function () {
|
|
return {
|
|
featureFlagsManager: {
|
|
init: vi.fn(),
|
|
loadFeatureFlags: vi.fn(),
|
|
value: { smartSearch: true, trash: true },
|
|
} as never,
|
|
};
|
|
});
|
|
});
|
|
|
|
afterEach(() => {
|
|
authManager.reset();
|
|
});
|
|
|
|
afterAll(() => {
|
|
vi.restoreAllMocks();
|
|
});
|
|
|
|
it('shows back button', () => {
|
|
const preferences = preferencesFactory.build({ cast: { gCastEnabled: false } });
|
|
authManager.setPreferences(preferences);
|
|
|
|
const asset = assetFactory.build({ isTrashed: false });
|
|
const { getByLabelText } = renderWithTooltips(AssetViewerNavBar, { asset, ...additionalProps });
|
|
expect(getByLabelText('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 });
|
|
authManager.setUser(user);
|
|
|
|
const preferences = preferencesFactory.build({ cast: { gCastEnabled: false } });
|
|
authManager.setPreferences(preferences);
|
|
|
|
const { getByLabelText } = renderWithTooltips(AssetViewerNavBar, { asset, ...additionalProps });
|
|
expect(getByLabelText('delete')).toBeInTheDocument();
|
|
});
|
|
});
|
|
});
|