Ulubione na koncie - koniec kasowania zapisow przez pusta przegladarke
Deploy Polska Lokalnie / deploy (push) Successful in 12s

Dotad front po kazdej zmianie dyktowal serwerowi cala liste ulubionych.
Zalogowanie sie na innym urzadzeniu wysylalo "mam zero ulubionych"
i kasowalo zapisy, przez co wlasciciel ogloszenia tracil licznik zapisan.

Teraz: GET /api/listings/favorites zwraca ulubione konta, dodanie
i usuniecie ida pojedynczo (POST/DELETE /{id}/favorite), a wpisy z
przegladarki dopisuje jednorazowy /favorites/import. Endpoint
/favorites/sync usuniety razem z jego jedynym wywolaniem.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-23 11:26:00 +02:00
parent b9fecdea85
commit 557c76257b
3 changed files with 114 additions and 45 deletions
+31
View File
@@ -566,3 +566,34 @@ test.describe('Spotkania', () => {
await expect(page.locator('.messages-meeting-form')).toBeVisible();
});
});
// Ulubione sa na koncie. Test pilnuje regresji: wejscie z pustej przegladarki NIE moze
// skasowac ulubionych zapisanych wczesniej (kiedys front dyktowal serwerowi cala liste).
test.describe('Ulubione', () => {
test('przezywaja wyczyszczenie pamieci przegladarki', async ({ page }) => {
await login(page);
await goto(page, ROUTES.buy);
await page.locator('.real-result-card').first().waitFor();
const href = await page.locator('.real-result-card .card-stretched-link').first().getAttribute('href');
await goto(page, href!);
const title = await page.locator('.listing-detail-title, h1').first().innerText();
const heart = page.locator('button[aria-label*="ulubion"], .listing-detail-fav').first();
await heart.click();
await goto(page, ROUTES.favorites);
await expect(page.locator('main')).toContainText(title.trim().slice(0, 20));
await page.evaluate(() => {
const token = window.localStorage.getItem('polskalokalnie-auth-token');
window.localStorage.clear();
if (token) {
window.localStorage.setItem('polskalokalnie-auth-token', token);
}
});
await goto(page, ROUTES.favorites);
await expect(page.locator('main')).toContainText(title.trim().slice(0, 20));
await page.locator('button[aria-label*="Usuń"], .favorites-card-remove').first().click();
await expect(page.locator('main')).not.toContainText(title.trim().slice(0, 20));
});
});