Spotkania na serwerze: umawianie ogladania z druga strona
Deploy Polska Lokalnie / deploy (push) Successful in 12s

Nowa tabela meetings i /api/meetings. Termin proponuje jedna ze stron
rozmowy o ogloszeniu, druga potwierdza albo odrzuca; odwolac moze kazda
ze stron. Kalendarz konta pokazuje oba rodzaje wpisow - umowione
ogladania i wlasne notatki - i jest ten sam na kazdym urzadzeniu.
Powiadomienia: wpis w watku i dzwonek przy kazdej zmianie, e-mail
wylacznie przy potwierdzeniu terminu.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-23 09:57:35 +02:00
parent e85cc70982
commit b9fecdea85
11 changed files with 1029 additions and 240 deletions
+35
View File
@@ -531,3 +531,38 @@ test.describe('Zapisane wyszukiwania', () => {
await expect(page.locator('main')).not.toContainText('Gdynia');
});
});
// Spotkania sa na koncie, a ogladanie umawiaja obie strony rozmowy o ogloszeniu.
test.describe('Spotkania', () => {
test('wlasny wpis w kalendarzu przezywa odswiezenie', async ({ page }) => {
await login(page);
await goto(page, ROUTES.accountMeetings);
await page.getByRole('button', { name: /Dodaj własny wpis/ }).click();
const title = `Notatka ${Date.now()}`;
await page.locator('.meetings-create-form input[type=text]').first().fill(title);
await page.getByRole('button', { name: 'Zapisz wpis' }).click();
await expect(page.locator('.meetings-list')).toContainText(title);
await page.reload();
await expect(page.locator('.meetings-list')).toContainText(title);
await page.locator('button[aria-label="Usuń wpis"]').first().click();
await expect(page.locator('.meetings-list')).not.toContainText(title);
});
test('w rozmowie o ogloszeniu mozna zaproponowac ogladanie', 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!);
await page.getByRole('button', { name: /Napisz wiadomość/ }).first().click();
await page.waitForFunction(() => window.location.pathname.startsWith('/wiadomosci/'));
await page.locator('.messages-composer input[type=text]').fill('Dzien dobry, czy oferta jest aktualna?');
await page.locator('.messages-composer .send').click();
await page.waitForFunction(() => /wiadomosci/.test(window.location.pathname) && window.location.pathname.split('/').length === 3);
await page.getByRole('button', { name: /Zaproponuj oglądanie/ }).click();
await expect(page.locator('.messages-meeting-form')).toBeVisible();
});
});