firmy i usługi plus ustawiaenia

This commit is contained in:
2026-08-19 17:02:55 +02:00
parent c52bbabec0
commit f9f030ba14
21 changed files with 3438 additions and 426 deletions
+30 -25
View File
@@ -73,52 +73,57 @@ test.describe('Trasy publiczne', () => {
});
test.describe('Lista firm i uslug (/firmy)', () => {
test('wejscie na /firmy pokazuje pelna liste', async ({ page }) => {
// Do serwisu nie dolaczyla jeszcze zadna firma. Dopoki tak jest, /firmy pokazuje SAMO zaproszenie -
// bez naglowka, licznika, chipow kategorii i wyszukiwarki (pokazywalyby zera i filtrowaly pustke).
// Gdy pojawi sie pierwsza firma, gorna czesc wraca i te testy trzeba rozszerzyc o karty.
test('wejscie na /firmy pokazuje samo zaproszenie', async ({ page }) => {
await goto(page, ROUTES.companies);
await expect(page.locator('.companies-head h1')).toHaveText('Wszystkie firmy i usługi');
const cards = await page.locator('.directory-card').count();
expect(cards).toBeGreaterThan(10);
await expect(page.locator('.companies-none')).toBeVisible();
await expect(page.locator('.directory-card')).toHaveCount(0);
await expect(page.locator('.companies-head')).toHaveCount(0);
await expect(page.locator('.companies-filters')).toHaveCount(0);
await expect(page.locator('.service-mini-search')).toHaveCount(0);
});
test('filtr kategorii dziala przez query string', async ({ page }) => {
test('zaproszenie przejmuje role naglowka H1', async ({ page }) => {
await goto(page, ROUTES.companies);
const headings = page.locator('.companies-page h1');
await expect(headings).toHaveCount(1);
await expect(headings).toContainText('Nie mamy jeszcze żadnych firm');
});
test('kategoria z query stringu trafia do komunikatu', async ({ page }) => {
await goto(page, `${ROUTES.companies}?kategoria=remonty`);
await expect(page.locator('.companies-head h1')).toHaveText('Remont i wykończenie');
await expect(page.locator('.companies-none')).toContainText('Remont i wykończenie');
const filtered = await page.locator('.directory-card').count();
await goto(page, ROUTES.companies);
const all = await page.locator('.directory-card').count();
expect(filtered).toBeGreaterThan(0);
expect(filtered).toBeLessThan(all);
await expect(page.locator('.companies-none')).toContainText('w naszej bazie');
});
test('nieznana kategoria nie wywraca widoku - pokazuje pelna liste', async ({ page }) => {
test('nieznana kategoria nie wywraca widoku', async ({ page }) => {
await goto(page, `${ROUTES.companies}?kategoria=nie-ma-takiej`);
await expect(page.locator('.companies-head h1')).toHaveText('Wszystkie firmy i usługi');
await expect(page.locator('.companies-none')).toBeVisible();
await expect(page.locator('.companies-none')).toContainText('w naszej bazie');
});
test('klik w chip kategorii zmienia adres i wynik', async ({ page }) => {
await goto(page, ROUTES.companies);
await page.locator('.companies-chip', { hasText: 'Finanse' }).first().click();
await page.waitForFunction(() => window.location.search.includes('kategoria=finanse'));
await expect(page.locator('.companies-head h1')).toHaveText('Finanse');
});
test('"Zobacz firmy" prowadzi do listy z wybrana kategoria', async ({ page }) => {
// Kategorii usług jeszcze nie obsługujemy, więc kafelek prowadzi na stronę zgłoszenia
// reklamowego (/reklama), a nie do listy firm - z kategorią przeniesioną w query stringu.
test('"Zobacz firmy" prowadzi na strone reklamy z wybrana kategoria', async ({ page }) => {
await goto(page, ROUTES.services);
const link = page.locator('.service-category-card', { hasText: 'Remont i wykończenie' }).getByRole('link');
await expect(link).toHaveAttribute('href', '/firmy?kategoria=remonty');
await expect(link).toHaveAttribute('href', '/reklama?kategoria=remonty');
await link.click();
await page.waitForFunction(() => window.location.pathname === '/firmy');
await expect(page.locator('.companies-head h1')).toHaveText('Remont i wykończenie');
await page.waitForFunction(() => window.location.pathname === '/reklama');
await expect(page.locator('.advertising-input.select select')).toHaveValue('Remont i wykończenie');
});
test('"Zobacz wszystkie" prowadzi do pelnej listy', async ({ page }) => {
test('"Zobacz wszystkie" prowadzi na /firmy', async ({ page }) => {
await goto(page, ROUTES.services);
const link = page.locator('.services-section .section-head', { hasText: 'Polecane firmy' }).getByRole('link');
await expect(link).toHaveAttribute('href', ROUTES.companies);
await link.click();
await page.waitForFunction(() => window.location.pathname === '/firmy');
await expect(page.locator('.companies-head h1')).toHaveText('Wszystkie firmy i usługi');
await expect(page.locator('.companies-none')).toBeVisible();
});
test('Wstecz i Dalej dzialaja na filtrze kategorii', async ({ page }) => {