import test from 'node:test' import assert from 'node:assert/strict' import { buildApp } from '../src/app.js' const config = { appPassword: 'testlösen', sessionSecret: 'x'.repeat(32), lidarr: { url: '', apiKey: '' }, jellyfin: { url: '', apiKey: '' }, gemini: { apiKey: '', model: '' }, } test('health svarar utan inloggning', async () => { const app = buildApp(config) const res = await app.inject({ method: 'GET', url: '/api/health' }) assert.equal(res.statusCode, 200) assert.deepEqual(res.json(), { status: 'ok' }) await app.close() }) test('fel lösenord ger 401', async () => { const app = buildApp(config) const res = await app.inject({ method: 'POST', url: '/api/login', payload: { password: 'fel' }, }) assert.equal(res.statusCode, 401) await app.close() }) test('rätt lösenord ger session-cookie och åtkomst', async () => { const app = buildApp(config) const login = await app.inject({ method: 'POST', url: '/api/login', payload: { password: 'testlösen' }, }) assert.equal(login.statusCode, 200) const cookie = login.headers['set-cookie'] assert.ok(cookie, 'ingen session-cookie sattes') const session = await app.inject({ method: 'GET', url: '/api/session', headers: { cookie }, }) assert.equal(session.json().authenticated, true) await app.close() }) test('skyddad API-rutt utan session ger 401', async () => { const app = buildApp(config) const res = await app.inject({ method: 'GET', url: '/api/whatever' }) assert.equal(res.statusCode, 401) await app.close() })