|
|
@@ -111,18 +111,18 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
it('loads on first entry and presents one accessible route to Models', async () => {
|
|
|
const h = harness()
|
|
|
render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- expect(await screen.findByRole('dialog', { name: en.onboardingTitle })).toBeTruthy()
|
|
|
+ expect(await screen.findByRole('region', { name: en.onboardingTitle })).toBeTruthy()
|
|
|
expect(screen.getByText(en.onboardingDescription)).toBeTruthy()
|
|
|
const action = screen.getByRole('button', { name: en.onboardingGoToSettings })
|
|
|
expect(action).toBeTruthy()
|
|
|
- expect(document.activeElement).toBe(action)
|
|
|
+ expect(document.activeElement).toBe(screen.getByRole('heading', { name: en.onboardingTitle }))
|
|
|
expect(screen.queryByRole('textbox')).toBeNull()
|
|
|
})
|
|
|
|
|
|
it('opens the Models section and dismisses the prompt', async () => {
|
|
|
const h = harness()
|
|
|
render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- await screen.findByRole('dialog')
|
|
|
+ await screen.findByRole('region')
|
|
|
fireEvent.click(screen.getByRole('button', { name: en.onboardingGoToSettings }))
|
|
|
expect(h.complete).toHaveBeenCalledOnce()
|
|
|
expect(h.openSection).toHaveBeenCalledWith('models')
|
|
|
@@ -131,7 +131,7 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
it('allows configure-later dismissal without opening settings', async () => {
|
|
|
const h = harness()
|
|
|
render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- await screen.findByRole('dialog')
|
|
|
+ await screen.findByRole('region')
|
|
|
fireEvent.click(screen.getByRole('button', { name: en.onboardingLater }))
|
|
|
expect(h.complete).toHaveBeenCalledOnce()
|
|
|
expect(h.openSection).not.toHaveBeenCalled()
|
|
|
@@ -140,7 +140,7 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
it('routes an unavailable credential deployment to Models with a diagnostic', async () => {
|
|
|
const h = harness({ describeFailure: 'credentials service is absent' })
|
|
|
render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- await screen.findByRole('dialog', { name: en.onboardingUnavailableTitle })
|
|
|
+ await screen.findByRole('region', { name: en.onboardingUnavailableTitle })
|
|
|
expect(screen.getByText(en.onboardingCredentialsUnavailable)).toBeTruthy()
|
|
|
fireEvent.click(screen.getByRole('button', { name: en.onboardingGoToSettings }))
|
|
|
expect(h.openSection).toHaveBeenCalledWith('models')
|
|
|
@@ -152,7 +152,7 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
harness({ settingsWritable: false }),
|
|
|
]) {
|
|
|
const view = render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- await screen.findByRole('dialog', { name: en.onboardingUnavailableTitle })
|
|
|
+ await screen.findByRole('region', { name: en.onboardingUnavailableTitle })
|
|
|
expect(screen.getByText(en.onboardingReadOnly)).toBeTruthy()
|
|
|
view.unmount()
|
|
|
}
|
|
|
@@ -161,7 +161,7 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
it('distinguishes an initial transport failure from deployment misconfiguration', async () => {
|
|
|
const h = harness({ providersRejectOnce: true })
|
|
|
render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- await screen.findByRole('dialog', { name: en.onboardingUnavailableTitle })
|
|
|
+ await screen.findByRole('region', { name: en.onboardingUnavailableTitle })
|
|
|
expect(screen.getByText(en.onboardingLoadFailed)).toBeTruthy()
|
|
|
fireEvent.click(screen.getByRole('button', { name: en.onboardingGoToSettings }))
|
|
|
expect(h.openSection).toHaveBeenCalledWith('models')
|
|
|
@@ -174,7 +174,7 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
harness({ apiKeyEnv: null }),
|
|
|
]) {
|
|
|
const view = render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- await screen.findByRole('dialog', { name: en.onboardingUnavailableTitle })
|
|
|
+ await screen.findByRole('region', { name: en.onboardingUnavailableTitle })
|
|
|
expect(screen.getByText(en.onboardingConfigurationUnavailable)).toBeTruthy()
|
|
|
view.unmount()
|
|
|
}
|
|
|
@@ -188,7 +188,7 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
]) {
|
|
|
const view = render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
await act(async () => { await h.controller.load() })
|
|
|
- expect(screen.queryByRole('dialog')).toBeNull()
|
|
|
+ expect(screen.queryByRole('region')).toBeNull()
|
|
|
await waitFor(() => { expect(h.complete).toHaveBeenCalledOnce() })
|
|
|
view.unmount()
|
|
|
}
|
|
|
@@ -197,10 +197,10 @@ describe('DeepSeekOnboardingDialog', () => {
|
|
|
it('closes when an external credential invalidation refreshes the shared join', async () => {
|
|
|
const h = harness()
|
|
|
render(<DeepSeekOnboardingDialog {...h.props} />)
|
|
|
- await screen.findByRole('dialog')
|
|
|
+ await screen.findByRole('region')
|
|
|
h.configure()
|
|
|
await act(async () => { await h.controller.load() })
|
|
|
- await waitFor(() => { expect(screen.queryByRole('dialog')).toBeNull() })
|
|
|
+ await waitFor(() => { expect(screen.queryByRole('region')).toBeNull() })
|
|
|
expect(h.complete).toHaveBeenCalledOnce()
|
|
|
})
|
|
|
})
|