My-Weekly-ToDo-List/tests/debug/port-9323-test.spec.ts
mARTin-B78 230a4034e8
Some checks are pending
Playwright Tests / test (push) Waiting to run
Test and SonarQube / quality (push) Waiting to run
feat: rate limiting, token hashing, remove mock login route
Erste Abarbeitung des Repository-Audits (siehe TODO.md).

Sicherheit:
- Rate-Limiting für alle vier Auth-Endpunkte. Sie waren unbegrenzt aufrufbar,
  also beliebig viele Mails über den eigenen SMTP-Zugang und beliebig viele
  Rateversuche auf Verifizierungscodes.
- Passwort-Reset-Token nur noch als SHA-256-Hash in der Datenbank. Bisher
  Klartext: Lesezugriff auf die DB genuegte zur Kontouebernahme.
- Tote Mock-Login-Route entfernt. Sie verglich gegen ein hartcodiertes
  Fake-Passwort und war ueber die Middleware-Ausnahme fuer /api/auth/*
  ohne Anmeldung erreichbar.
- Passwort-Reset auf bcrypt-Kosten 12, wie beim Signup.

Reparaturen:
- npm test rief jest auf, obwohl es weder Jest-Config noch Jest-Tests gibt.
  Zeigt jetzt auf Playwright; jest/ts-jest/@types/jest entfernt.
- Falscher sonar.projectKey im Workflow.

Verifiziert per tsc gegen die geaenderten Bereiche: keine neuen Typfehler.

v1.117.0

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-06 20:01:30 +02:00

22 lines
815 B
TypeScript

import { test, expect } from '@playwright/test';
// Test to verify the currently running application at port 9323
test('My Weekly To Do List should be accessible at port 9323', async ({ page }) => {
// Navigate to the running application
await page.goto('http://localhost:9323');
// Check that the main elements are present
await expect(page).toHaveTitle(/My Weekly To Do List/);
// Check for main UI elements
await expect(page.getByText('My Weekly To Do List')).toBeVisible();
await expect(page.getByText('Weekly View')).toBeVisible();
});
test('Should be able to access tasks page from port 9323', async ({ page }) => {
await page.goto('http://localhost:9323');
// Try to navigate to tasks page
const tasksLink = page.getByText('Tasks');
await expect(tasksLink).toBeVisible();
});