firmy i usługi plus ustawiaenia
This commit is contained in:
@@ -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 }) => {
|
||||
|
||||
Reference in New Issue
Block a user