From a1220f2a3b6b632097c4c06e8ef060a0573de86d Mon Sep 17 00:00:00 2001 From: guroklo Date: Fri, 18 Sep 2026 16:05:50 +0200 Subject: [PATCH] opprettet tester for navigasjon og favoritt-toggle --- src/test/FavoriteButton.test.tsx | 25 ++++++++++++++++++++++++ src/test/Navigation.test.tsx | 33 ++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 src/test/FavoriteButton.test.tsx create mode 100644 src/test/Navigation.test.tsx diff --git a/src/test/FavoriteButton.test.tsx b/src/test/FavoriteButton.test.tsx new file mode 100644 index 0000000..539dfc0 --- /dev/null +++ b/src/test/FavoriteButton.test.tsx @@ -0,0 +1,25 @@ +import { fireEvent, render, screen } from '@testing-library/react' +import { describe, expect, it, vi } from 'vitest' +import { FavoriteButton } from '../components/FavoriteButton' + +describe('FavoriteButton', () => { + it('kaller onToggle når knappen klikkes', () => { + const onToggle = vi.fn() + + render() + + fireEvent.click( + screen.getByRole('button', { name: 'Legg til favoritt' }), + ) + + expect(onToggle).toHaveBeenCalledOnce() + }) + + it('viser riktig knapp når sangen er favoritt', () => { + render() + + expect( + screen.getByRole('button', { name: 'Fjern fra favoritter' }), + ).toBeInTheDocument() + }) +}) \ No newline at end of file diff --git a/src/test/Navigation.test.tsx b/src/test/Navigation.test.tsx new file mode 100644 index 0000000..faf47d0 --- /dev/null +++ b/src/test/Navigation.test.tsx @@ -0,0 +1,33 @@ +import { fireEvent, render, screen } from '@testing-library/react' +import { describe, expect, it, vi } from 'vitest' +import { Navigation } from '../components/Navigation' + +describe('Navigation', () => { + it('tester props og brukerinteraksjon', () => { + const onNext = vi.fn() + + render( + {}} + onNext={onNext} + />, + ) + + const previousButton = screen.getByRole('button', { + name: 'Forrige sang', + }) + + const nextButton = screen.getByRole('button', { + name: 'Neste sang', + }) + + expect(previousButton).toBeDisabled() + expect(nextButton).not.toBeDisabled() + + fireEvent.click(nextButton) + + expect(onNext).toHaveBeenCalled() + }) +}) \ No newline at end of file