Alerty cenowe na serwerze - powiadomienia tylko w serwisie
Deploy Polska Lokalnie / deploy (push) Successful in 22s
Deploy Polska Lokalnie / deploy (push) Successful in 22s
Alerty liczyla dotad przegladarka, wiec dzialaly wylacznie przy otwartej
stronie, a rynek porownywaly malymi literami ("wtorny" vs "Wtórny"),
przez co alert lokalizacji z wybranym rynkiem nigdy nie mial danych.
Teraz: tabele price_alerts i price_alert_events, /api/price-alerts oraz
codzienny przeglad o 03:00 (po nocnym zapisie srednich cen). Ogloszenie -
powiadomienie przy kazdej zmianie ceny; lokalizacja - przy zmianie
sredniej o co najmniej 2%. Wynik trafia wylacznie na liste powiadomien
uzytkownika; alerty nie wysylaja zadnych e-maili.
Alerty zalozone w przegladarce przenosimy raz przy pierwszym wejsciu.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -620,3 +620,38 @@ test.describe('Historia cen', () => {
|
||||
await expect(page.locator('main')).toContainText('Kraków');
|
||||
});
|
||||
});
|
||||
|
||||
// Alerty cenowe sa na koncie: zmiany wykrywa serwer, a powiadomienie trafia na liste w serwisie.
|
||||
test.describe('Alerty cenowe', () => {
|
||||
test('alert ogloszenia przezywa 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 alertButton = page.locator('.listing-detail-alert');
|
||||
if ((await alertButton.innerText()).includes('aktywny')) {
|
||||
await alertButton.click();
|
||||
await expect(alertButton).toHaveText(/Utwórz alert ceny/);
|
||||
}
|
||||
await alertButton.click();
|
||||
await expect(alertButton).toHaveText(/Alert aktywny/);
|
||||
|
||||
// Symulacja innego urzadzenia: zostaje sam token logowania.
|
||||
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.accountPriceAlerts);
|
||||
await expect(page.locator('.price-alerts-list-section')).not.toContainText('Nie obserwujesz jeszcze żadnego ogłoszenia');
|
||||
|
||||
// Sprzatanie: alert zdejmujemy tam, gdzie zostal zalozony.
|
||||
await goto(page, href!);
|
||||
await page.locator('.listing-detail-alert').click();
|
||||
await expect(page.locator('.listing-detail-alert')).toHaveText(/Utwórz alert ceny/);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user