+
{title}
+ {#if subtitle}
+
{subtitle}
+ {/if}
+ {#if attribution}
+
+ {attribution}
+
+ {/if}
+
+ {#if state === 'kept'}
+ Kept
+ {/if}
+
+
+```
+
+- [ ] **Step 7.3: Add tests**
+
+Append to `DiscoverResultCard.test.ts`:
+
+```ts
+test('renders attribution line when prop is set', () => {
+ render(DiscoverResultCard, {
+ props: {
+ kind: 'artist',
+ title: 'Outsider',
+ state: 'requestable',
+ attribution: 'Because you liked Boards of Canada and played Aphex Twin.'
+ }
+ });
+ expect(screen.getByTestId('attribution')).toHaveTextContent('Because you liked Boards of Canada and played Aphex Twin.');
+});
+
+test('omits attribution line when prop is absent', () => {
+ render(DiscoverResultCard, {
+ props: { kind: 'artist', title: 'Outsider', state: 'requestable' }
+ });
+ expect(screen.queryByTestId('attribution')).not.toBeInTheDocument();
+});
+```
+
+- [ ] **Step 7.4: Verify + commit**
+
+```bash
+cd /home/bvandeusen/Nextcloud/Projects/Minstrel/minstrel/web
+npm run check
+npm test -- --run DiscoverResultCard
+cd ..
+git add web/src/lib/components/DiscoverResultCard.svelte web/src/lib/components/DiscoverResultCard.test.ts
+git commit -m "feat(web): DiscoverResultCard attribution prop for M5c suggestions"
+```
+
+---
+
+### Task 8 — `