38 lines
1.5 KiB
TypeScript
38 lines
1.5 KiB
TypeScript
import '@testing-library/jest-dom';
|
|
import { render, screen } from '@testing-library/svelte';
|
|
import { init, register, waitLocale } from 'svelte-i18n';
|
|
import { writable } from 'svelte/store';
|
|
import { albumFactory } from '#test-data/factories/album-factory.ts';
|
|
import AlbumSummary from '../AlbumSummary.svelte';
|
|
|
|
vitest.mock('#lib/stores/preferences.store.ts', () => ({
|
|
locale: writable('en'),
|
|
}));
|
|
|
|
describe('AlbumSummary component', () => {
|
|
beforeAll(async () => {
|
|
await init({ fallbackLocale: 'en-US' });
|
|
register('en-US', () => import('#i18n/en.json'));
|
|
await waitLocale('en-US');
|
|
});
|
|
|
|
it('updates the date range when the start date of the album changes', async () => {
|
|
const album = albumFactory.build({
|
|
startDate: '2026-06-10T12:00:00.000Z',
|
|
endDate: '2026-06-20T12:00:00.000Z',
|
|
assetCount: 3,
|
|
});
|
|
const { rerender } = render(AlbumSummary, { album });
|
|
// @ts-expect-error pending a type fix: https://github.com/testing-library/jest-dom/pull/742/changes
|
|
expect(screen.getByTestId('album-details')).toHaveTextContent('Jun 10');
|
|
|
|
await rerender({ album: { ...album, startDate: '2026-06-15T12:00:00.000Z', assetCount: 2 } });
|
|
|
|
const details = screen.getByTestId('album-details');
|
|
// @ts-expect-error pending a type fix: https://github.com/testing-library/jest-dom/pull/742/changes
|
|
expect(details).toHaveTextContent('Jun 15');
|
|
// @ts-expect-error pending a type fix: https://github.com/testing-library/jest-dom/pull/742/changes
|
|
expect(details).not.toHaveTextContent('Jun 10');
|
|
});
|
|
});
|