navidrome/ui/src/plugin/InfoCard.test.jsx
Deluan Quintão b134f16fd5
feat(plugins): surface the valid agent names in logs and the Plugins UI (#5910)
The agent name used in the `Agents` config option comes from the .ndp file
name, not from the manifest. The Plugins UI showed the ID but never said what
it was for, so renaming a plugin file silently breaks the config with only a
Debug-level "Unknown agent ignored" line to go on.

Add a caption under the ID in the Plugins UI, and list the accepted names
alongside the rejected one in that log line.

Related to navidrome/apple-music-plugin#14
2026-08-30 11:11:35 -04:00

41 lines
1,002 B
JavaScript

import React from 'react'
import { render, screen } from '@testing-library/react'
import { describe, it, expect, vi } from 'vitest'
vi.mock('../common', () => ({
DateField: ({ source }) => <span data-testid={`date-${source}`} />,
}))
const { InfoCard } = await import('./InfoCard')
const record = {
id: 'apple-music',
path: '/data/plugins/apple-music.ndp',
updatedAt: '2026-01-01T00:00:00Z',
createdAt: '2026-01-01T00:00:00Z',
}
const renderCard = () =>
render(
<InfoCard
record={record}
manifest={{ name: 'Apple Music Metadata Agent' }}
classes={{}}
translate={(key) => key}
isSmall={false}
/>,
)
describe('InfoCard', () => {
it('shows the plugin ID', () => {
renderCard()
expect(screen.getByText('apple-music')).toBeInTheDocument()
})
it('explains that the ID is the name used in config options', () => {
renderCard()
expect(
screen.getByText('resources.plugin.messages.idHelp'),
).toBeInTheDocument()
})
})