/**
* Component: Backend Selection Step Tests
* Documentation: documentation/setup-wizard.md
*/
// @vitest-environment jsdom
import React from 'react';
import { fireEvent, render, screen } from '@testing-library/react';
import { describe, expect, it, vi } from 'vitest';
describe('BackendSelectionStep', () => {
it('updates the audible region helper based on backend', async () => {
const { BackendSelectionStep } = await import('@/app/setup/steps/BackendSelectionStep');
const { rerender } = render(
);
expect(screen.getByText(/configuration in Plex/i)).toBeInTheDocument();
rerender(
);
expect(screen.getByText(/configuration in Audiobookshelf/i)).toBeInTheDocument();
});
it('updates backend selection and audible region', async () => {
const onChange = vi.fn();
const onAudibleRegionChange = vi.fn();
const onNext = vi.fn();
const onBack = vi.fn();
const { BackendSelectionStep } = await import('@/app/setup/steps/BackendSelectionStep');
render(
);
fireEvent.click(screen.getByRole('radio', { name: /Audiobookshelf/i }));
expect(onChange).toHaveBeenCalledWith('audiobookshelf');
fireEvent.change(screen.getByLabelText('Audible Region'), { target: { value: 'uk' } });
expect(onAudibleRegionChange).toHaveBeenCalledWith('uk');
fireEvent.click(screen.getByRole('button', { name: 'Back' }));
fireEvent.click(screen.getByRole('button', { name: 'Next' }));
expect(onBack).toHaveBeenCalled();
expect(onNext).toHaveBeenCalled();
});
});