🧪 Teste Playwright

Despre Teste

Proiectul folosește Playwright pentru testare automată. Testele validează că fluxurile de lucru funcționează corect.

Notă: Înainte de a rula testele, trebuie să rulezi npm install în folderul tests/ pentru a instala dependențele.

Fișiere de Test

Fișier Descriere Tip
login-solr.test.ts Testează comanda /login-solr - deschide Solr în Chrome și face login Browser Automation
update-solr.test.ts Testează comanda /update-solr - adaugă job documents în Solr API Test
delete-solr.test.ts Testează comanda /delete-solr - șterge job documents din Solr API Test
add-website.test.ts Testează comanda /add-website - adaugă companie nouă în websites.md File Test
add-website-new-workflow.test.ts Testează fluxul complet /add-website cu website lookup File Test
remove-404.test.ts Testează comanda /remove-404 - validează URL-uri și șterge job-uri inactive API + Browser Test
remove-404-vdate.test.ts Testează actualizarea câmpului vdate în /remove-404 API Test
remove-404-chrome.test.ts Testează verificarea conținutului paginii cu Chrome în /remove-404 Browser Test

Cum să Rulezi Testele

1. Prerechizite

Porneste Chrome cu debugging:
cd ..
powershell -ExecutionPolicy Bypass -File start-chrome.ps1
Porneste Solr (pentru testele Solr):
docker start peviitor-solr

2. Instalează Dependențele

cd tests
npm install

3. Rulează Toate Testele

npx playwright test

4. Rulează un Test Specific

npx playwright test login-solr.test.ts
npx playwright test update-solr.test.ts
npx playwright test delete-solr.test.ts
npx playwright test add-website.test.ts

Rezultate Teste

Când rulezi testele, vei vedea rezultate ca:

Running 3 tests using 1 worker

  ok 1 [Chrome] › update-solr.test.ts:9:5 › verify job core is accessible 
  ok 2 [Chrome] › update-solr.test.ts:18:5 › query existing jobs 
  ok 3 [Chrome] › update-solr.test.ts:26:5 › add new job document following Job schema 

  3 passed

Configurare Playwright

Fișierul playwright.config.ts conține configurarea:

import { defineConfig, devices } from "@playwright/test";

export default defineConfig({
  testDir: ".",
  timeout: 30000,
  use: {
    baseURL: "http://localhost:8983",
    headless: false,
    launchOptions: {
      args: ["--remote-debugging-port=9222"],
    },
  },
  projects: [
    {
      name: "Chrome",
      use: { ...devices["Desktop Chrome"] },
    },
  ],
});
Important: Testele folosesc Chrome-ul care este deja pornit cu debugging pe portul 9222 (de la start-chrome.ps1).

Adaugă Teste Noi

Pentru a adăuga un test nou:

1. creează un fișier *.test.ts în folderul tests/
2. Definește testul folosind Playwright API
3. Rulează testul pentru a verifica că funcționează
4. Urmărește fluxul de lucru din /instructions pentru a actualiza documentația după modificări

Exemplu:

import { test, expect } from "@playwright/test";

test("descriere test", async ({ page }) => {
    // Logica testului
    await page.goto("http://localhost:8983/solr/");
    // ...
});
Important: Când testezi funcții care folosesc Job Schema, asigură-te că NU incluzi câmpul description - acesta nu există în schema Job!

Bug-uri Fix-uite