+261
@@ -0,0 +1,261 @@
|
||||
# Instructions
|
||||
|
||||
- Following Playwright test failed.
|
||||
- Explain why, be concise, respect Playwright best practices.
|
||||
- Provide a snippet of code with the fix, if possible.
|
||||
|
||||
# Test info
|
||||
|
||||
- Name: homePage.test.ts >> EndeavourOS HomePage - POM >> Theme >> startuje přímo ve světlém režimu
|
||||
- Location: tests/homePage.test.ts:111:9
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: expect(locator).toHaveAttribute(expected) failed
|
||||
|
||||
Locator: locator('html')
|
||||
Expected: "light"
|
||||
Received: "dark"
|
||||
Timeout: 5000ms
|
||||
|
||||
Call log:
|
||||
- Expect "toHaveAttribute" with timeout 5000ms
|
||||
- waiting for locator('html')
|
||||
9 × locator resolved to <html lang="cs" data-theme="dark">…</html>
|
||||
- unexpected value "dark"
|
||||
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [active] [ref=e1]:
|
||||
- banner [ref=e2]:
|
||||
- generic [ref=e3]:
|
||||
- link "EndeavourOS Logo CZ" [ref=e4] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- img "EndeavourOS Logo" [ref=e5]
|
||||
- generic [ref=e6]: CZ
|
||||
- navigation [ref=e7]:
|
||||
- list [ref=e8]:
|
||||
- listitem [ref=e9]:
|
||||
- link "Domů" [ref=e10] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- listitem [ref=e11]:
|
||||
- link "EndeavourOS" [ref=e12] [cursor=pointer]:
|
||||
- /url: /endeavouros.php
|
||||
- listitem [ref=e13]:
|
||||
- link "Články" [ref=e14] [cursor=pointer]:
|
||||
- /url: /rozcestnik.php
|
||||
- listitem [ref=e15]:
|
||||
- link "Krátké návody" [ref=e16] [cursor=pointer]:
|
||||
- /url: /cheatsheet.php
|
||||
- listitem [ref=e17]:
|
||||
- link "Fórum" [ref=e18] [cursor=pointer]:
|
||||
- /url: https://forum.arch-linux.cz/
|
||||
- listitem [ref=e19]:
|
||||
- link "O nás" [ref=e20] [cursor=pointer]:
|
||||
- /url: /o-nas.php
|
||||
- generic [ref=e21]:
|
||||
- textbox "Hledat v článcích..." [ref=e23]
|
||||
- button "Sdílet stránku" [ref=e24] [cursor=pointer]:
|
||||
- generic [ref=e25]:
|
||||
- text: Sdílet
|
||||
- button "Přepnout téma" [ref=e26] [cursor=pointer]:
|
||||
- generic [ref=e27]:
|
||||
- main [ref=e28]:
|
||||
- generic [ref=e29]:
|
||||
- heading "🇨🇿 Vítám Tě na webu České komunity EndeavourOS! 🇨🇿" [level=1] [ref=e30]
|
||||
- paragraph [ref=e31]: Lehká, rychlá a moderní distribuce založená na Arch Linuxu.
|
||||
- heading "Je navržena tak, aby poskytovala uživatelům přístup k nejnovějším technologiím a softwaru, přičemž zachovává jednoduchost a stabilitu. Distribuce nabízí několik předinstalovaných prostředí." [level=4] [ref=e32]
|
||||
- heading "👇 Začínáme 👇" [level=2] [ref=e33]
|
||||
- generic [ref=e34]:
|
||||
- 'link "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon... 2026-04-28" [ref=e35] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME"
|
||||
- 'heading "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME" [level=3] [ref=e36]'
|
||||
- paragraph [ref=e37]: Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon...
|
||||
- generic [ref=e38]: 2026-04-28
|
||||
- link "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows... 2026-04-28" [ref=e39] [cursor=pointer]:
|
||||
- /url: /article.php?slug=⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky
|
||||
- heading "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky" [level=3] [ref=e40]
|
||||
- paragraph [ref=e41]: Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows...
|
||||
- generic [ref=e42]: 2026-04-28
|
||||
- 'link "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č... 2026-04-28" [ref=e43] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME"
|
||||
- 'heading "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME" [level=3] [ref=e44]'
|
||||
- paragraph [ref=e45]: Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č...
|
||||
- generic [ref=e46]: 2026-04-28
|
||||
- 'link "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta... 2026-04-28" [ref=e47] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované"
|
||||
- 'heading "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované" [level=3] [ref=e48]'
|
||||
- paragraph [ref=e49]: Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta...
|
||||
- generic [ref=e50]: 2026-04-28
|
||||
- link "💽 Jak připojit nový SSD disk v EndeavourOS Určíme přidaný disk (dle názvu či velikosti), v mém případě ... 2026-04-28" [ref=e51] [cursor=pointer]:
|
||||
- /url: /article.php?slug=💽 Jak připojit nový SSD disk v EndeavourOS
|
||||
- heading "💽 Jak připojit nový SSD disk v EndeavourOS" [level=3] [ref=e52]
|
||||
- paragraph [ref=e53]: Určíme přidaný disk (dle názvu či velikosti), v mém případě ...
|
||||
- generic [ref=e54]: 2026-04-28
|
||||
- link "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac Jak lehce instalovat aplikace pomocí grafického správce Pamac... 2026-04-28" [ref=e55] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak lehce instalovat aplikace pomocí grafického správce Pamac
|
||||
- heading "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac" [level=3] [ref=e56]
|
||||
- paragraph [ref=e57]: Jak lehce instalovat aplikace pomocí grafického správce Pamac...
|
||||
- generic [ref=e58]: 2026-04-28
|
||||
- link "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků... 2026-04-28" [ref=e59] [cursor=pointer]:
|
||||
- /url: /article.php?slug=AUR packages a jak nainstalovat aplikaci pomocí YAY
|
||||
- heading "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY" [level=3] [ref=e60]
|
||||
- paragraph [ref=e61]: EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků...
|
||||
- generic [ref=e62]: 2026-04-28
|
||||
- link "🚨 Jak zapnout upozornění na nové aktualizace Jak zapnout upozornění na nové aktualizace... 2026-04-28" [ref=e63] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak zapnout upozornění na nové aktualizace
|
||||
- heading "🚨 Jak zapnout upozornění na nové aktualizace" [level=3] [ref=e64]
|
||||
- paragraph [ref=e65]: Jak zapnout upozornění na nové aktualizace...
|
||||
- generic [ref=e66]: 2026-04-28
|
||||
- link "🐧 Linux pacman příkazy Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc... 2026-04-28" [ref=e67] [cursor=pointer]:
|
||||
- /url: /article.php?slug=🐧 Linux pacman příkazy
|
||||
- heading "🐧 Linux pacman příkazy" [level=3] [ref=e68]
|
||||
- paragraph [ref=e69]: Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc...
|
||||
- generic [ref=e70]: 2026-04-28
|
||||
- contentinfo [ref=e71]:
|
||||
- generic [ref=e72]:
|
||||
- paragraph [ref=e73]: © 2026 EndeavourOS CZ Komunita. Vytvořeno s láskou k Linuxu ❤️.
|
||||
- paragraph [ref=e74]:
|
||||
- link "Zásady ochrany osobních údajů" [ref=e75] [cursor=pointer]:
|
||||
- /url: /privacy-policy.php
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
22 | });
|
||||
23 |
|
||||
24 | test('check all hello text visibility', async ({ page }) => {
|
||||
25 | await homePage.checkHalloText(expectedHalloText);
|
||||
26 | const locator = page.locator('.hero');
|
||||
27 |
|
||||
28 | await expect(locator).toHaveText(expectedHeroToHaveText);
|
||||
29 | await expect(homePage.halloDescription2).toHaveText(expectedHalloToHaveText2);
|
||||
30 |
|
||||
31 |
|
||||
32 | });
|
||||
33 | });
|
||||
34 |
|
||||
35 | test.describe('navigate', () => {
|
||||
36 |
|
||||
37 | test('search for a term', async ({page}) => {
|
||||
38 | await homePage.searchInput.fill('EndeavourOS');
|
||||
39 | // nejdříve je nutno opravit vyhledávaní na webu
|
||||
40 | // await page.getByText('Linux pacman příkazy').click();
|
||||
41 |
|
||||
42 | });
|
||||
43 |
|
||||
44 | test('check all menu items visibility', async () => {
|
||||
45 | await homePage.checkMenuTexts(expectedMenuTexts);
|
||||
46 | });
|
||||
47 |
|
||||
48 | test('navigation to EndeavourOS', async ({ page }) => {
|
||||
49 | await homePage.clickMenuItem('EndeavourOS');
|
||||
50 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/endeavouros`));
|
||||
51 | });
|
||||
52 |
|
||||
53 | test('navigation to Články', async ({ page }) => {
|
||||
54 | await homePage.clickMenuItem('Články');
|
||||
55 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/rozcestnik`));
|
||||
56 | });
|
||||
57 |
|
||||
58 | test('navigation to Krátké návody', async ({ page }) => {
|
||||
59 | await homePage.clickMenuItem('Krátké návody');
|
||||
60 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/cheatsheet`));
|
||||
61 | });
|
||||
62 |
|
||||
63 | // Seznam externích odkazů, které chceme prověřit
|
||||
64 | // Nyní nejde nutno doopravit
|
||||
65 | // test('externí odkazy v menu jsou platné', async ({ page, request }) => {
|
||||
66 | // const homePage = new HomePage(page);
|
||||
67 | // await homePage.navigate();
|
||||
68 |
|
||||
69 | // Seznam externích odkazů, které chceme prověřit
|
||||
70 | // test('kontrola externích odkazů na zdraví (status 200)', async ({ page, request }) => {
|
||||
71 | // const homePage = new HomePage(page);
|
||||
72 | // await homePage.navigate();
|
||||
73 |
|
||||
74 | // for (const link of externalLinks) {
|
||||
75 | // // Ověříme, že text tlačítka je na stránce vidět
|
||||
76 | // const href = await homePage.getMenuItemHref(link.name);
|
||||
77 |
|
||||
78 | // // Ověříme, že href v HTML odpovídá tomu, co máme v datech
|
||||
79 | // expect(href).toBe(link.url);
|
||||
80 |
|
||||
81 | // // Provedeme rychlou kontrolu, zda link není "mrtvý"
|
||||
82 | // const response = await request.get(link.url);
|
||||
83 | // expect(response.ok(), `Odkaz ${link.name} na adrese ${link.url} vrací chybu!`).toBeTruthy();
|
||||
84 |
|
||||
85 | // console.log(`Log: Odkaz "${link.name}" je v pořádku.`);
|
||||
86 | // }
|
||||
87 | // });
|
||||
88 |
|
||||
89 | //funkční řešení - otevře web
|
||||
90 | test('externí Fórum -> odkaz má správnou adresu', async () => {
|
||||
91 | const href = await homePage.getMenuItemLinkHref('Fórum'); // Příklad
|
||||
92 | expect(href).toBe('https://forum.arch-linux.cz/');
|
||||
93 | });
|
||||
94 |
|
||||
95 | test('navigation to O nás', async ({ page }) => {
|
||||
96 | await homePage.clickMenuItem('O nás');
|
||||
97 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/o-nas`));
|
||||
98 | });
|
||||
99 | });
|
||||
100 |
|
||||
101 | test.describe('Theme', () => {
|
||||
102 | let homePage: HomePage;
|
||||
103 |
|
||||
104 | test.beforeEach(async ({ page }) => {
|
||||
105 | homePage = new HomePage(page);
|
||||
106 | await homePage.navigate();
|
||||
107 | });
|
||||
108 | test('switch theme sun', async ({ page }) => {
|
||||
109 | await homePage.switchThemeFunction()
|
||||
110 | })
|
||||
111 | test('startuje přímo ve světlém režimu', async ({ page }) => {
|
||||
112 | // Tento skript se spustí dříve, než se načte CSS a JS tvého webu
|
||||
113 | await page.addInitScript(() => {
|
||||
114 | document.documentElement.setAttribute('data-theme', 'light');
|
||||
115 | // Pokud ukládáš nastavení do localStorage, můžeš ho "přednastavit" i tam
|
||||
116 | window.localStorage.setItem('theme', 'light');
|
||||
117 | });
|
||||
118 |
|
||||
119 | await page.goto('https://endeavouros.cz');
|
||||
120 |
|
||||
121 | // Nyní už rovnou ověřuješ, že je vše světlé
|
||||
> 122 | await expect(page.locator('html')).toHaveAttribute('data-theme', 'light');
|
||||
| ^ Error: expect(locator).toHaveAttribute(expected) failed
|
||||
123 | const themeButton = page.locator('#data-theme');
|
||||
124 | await themeButton.click();
|
||||
125 | await expect(page.locator('html')).toHaveAttribute('data-theme', 'dark');
|
||||
126 | });
|
||||
127 | })
|
||||
128 |
|
||||
129 | test.describe('Carts (Karty) na HomePage', () => {
|
||||
130 | let homePage: HomePage;
|
||||
131 |
|
||||
132 | test.beforeEach(async ({ page }) => {
|
||||
133 | homePage = new HomePage(page);
|
||||
134 | await homePage.navigate();
|
||||
135 | });
|
||||
136 |
|
||||
137 | // Otestuje textace na kartách
|
||||
138 | test('should display all cards correctly', async () => {
|
||||
139 | for (const card of homePageCards) {
|
||||
140 | // Používáme naši POM metodu pro každou kartu
|
||||
141 | await homePage.verifyCardContent(card.title, card.description);
|
||||
142 | }
|
||||
143 | });
|
||||
144 |
|
||||
145 | // test('should navigate after clicking on a specific card', async ({ page }) => {
|
||||
146 | // // Příklad pro jednu konkrétní kartu
|
||||
147 | // await homePage.clickCardButton('Lehkost a rychlost');
|
||||
148 | // // Zde by následoval expect na novou URL
|
||||
149 | // });
|
||||
150 | });
|
||||
151 | });
|
||||
```
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
BIN
Binary file not shown.
@@ -0,0 +1,138 @@
|
||||
# Instructions
|
||||
|
||||
- Following Playwright test failed.
|
||||
- Explain why, be concise, respect Playwright best practices.
|
||||
- Provide a snippet of code with the fix, if possible.
|
||||
|
||||
# Test info
|
||||
|
||||
- Name: homePage.test.ts >> dark >> přepnutí z light do dark
|
||||
- Location: tests/homePage.test.ts:165:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Test timeout of 30000ms exceeded.
|
||||
```
|
||||
|
||||
```
|
||||
Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
Call log:
|
||||
- waiting for locator('.data-theme')
|
||||
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
73 |
|
||||
74 | // for (const link of externalLinks) {
|
||||
75 | // // Ověříme, že text tlačítka je na stránce vidět
|
||||
76 | // const href = await homePage.getMenuItemHref(link.name);
|
||||
77 |
|
||||
78 | // // Ověříme, že href v HTML odpovídá tomu, co máme v datech
|
||||
79 | // expect(href).toBe(link.url);
|
||||
80 |
|
||||
81 | // // Provedeme rychlou kontrolu, zda link není "mrtvý"
|
||||
82 | // const response = await request.get(link.url);
|
||||
83 | // expect(response.ok(), `Odkaz ${link.name} na adrese ${link.url} vrací chybu!`).toBeTruthy();
|
||||
84 |
|
||||
85 | // console.log(`Log: Odkaz "${link.name}" je v pořádku.`);
|
||||
86 | // }
|
||||
87 | // });
|
||||
88 |
|
||||
89 | //funkční řešení - otevře web
|
||||
90 | test('externí Fórum -> odkaz má správnou adresu', async () => {
|
||||
91 | const href = await homePage.getMenuItemLinkHref('Fórum'); // Příklad
|
||||
92 | expect(href).toBe('https://forum.arch-linux.cz/');
|
||||
93 | });
|
||||
94 |
|
||||
95 | test('navigation to O nás', async ({ page }) => {
|
||||
96 | await homePage.clickMenuItem('O nás');
|
||||
97 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/o-nas`));
|
||||
98 | });
|
||||
99 | });
|
||||
100 |
|
||||
101 | test.describe('Theme', () => {
|
||||
102 | let homePage: HomePage;
|
||||
103 |
|
||||
104 | test.beforeEach(async ({ page }) => {
|
||||
105 | homePage = new HomePage(page);
|
||||
106 | await homePage.navigate();
|
||||
107 | });
|
||||
108 | test('switch theme sun', async ({ page }) => {
|
||||
109 | await homePage.switchThemeFunction()
|
||||
110 | })
|
||||
111 |
|
||||
112 | })
|
||||
113 |
|
||||
114 | test.describe('Carts (Karty) na HomePage', () => {
|
||||
115 | let homePage: HomePage;
|
||||
116 |
|
||||
117 | test.beforeEach(async ({ page }) => {
|
||||
118 | homePage = new HomePage(page);
|
||||
119 | await homePage.navigate();
|
||||
120 | });
|
||||
121 |
|
||||
122 | // Otestuje textace na kartách
|
||||
123 | test('should display all cards correctly', async () => {
|
||||
124 | for (const card of homePageCards) {
|
||||
125 | // Používáme naši POM metodu pro každou kartu
|
||||
126 | await homePage.verifyCardContent(card.title, card.description);
|
||||
127 | }
|
||||
128 | });
|
||||
129 |
|
||||
130 | // test('should navigate after clicking on a specific card', async ({ page }) => {
|
||||
131 | // // Příklad pro jednu konkrétní kartu
|
||||
132 | // await homePage.clickCardButton('Lehkost a rychlost');
|
||||
133 | // // Zde by následoval expect na novou URL
|
||||
134 | // });
|
||||
135 | });
|
||||
136 | });
|
||||
137 | test.describe('dark', () => {
|
||||
138 | test('přepnutí ze světlého startu do tmavého režimu', async ({ page }) => {
|
||||
139 | // 1. FÁZE: Vynucení světlého režimu před startem
|
||||
140 | // EndeavourOS.cz je defaultně tmavý, takže mu musíme zakázat třídu 'dark'
|
||||
141 | await page.addInitScript(() => {
|
||||
142 | document.documentElement.classList.remove('dark');
|
||||
143 | window.localStorage.setItem('theme', 'light');
|
||||
144 | });
|
||||
145 |
|
||||
146 | // 2. FÁZE: Načtení stránky
|
||||
147 | await page.goto('https://endeavouros.cz');
|
||||
148 |
|
||||
149 | // Kontrola, že jsme skutečně začali ve světlém (třída 'dark' chybí)
|
||||
150 | await expect(page.locator('html')).not.toHaveClass(/dark/);
|
||||
151 |
|
||||
152 | // 3. FÁZE: Akce - kliknutí na přepínač
|
||||
153 | // Na webu EndeavourOS.cz je to obvykle tlačítko v menu nebo záhlaví
|
||||
154 | // Tip: Použijeme ARIA label nebo ikonu, pokud známe selektor
|
||||
155 | const themeSwitcher = page.locator('button.theme-switcher, .mode-switcher');
|
||||
156 | await themeSwitcher.click();
|
||||
157 |
|
||||
158 | // 4. FÁZE: Ověření výsledku
|
||||
159 | // Nyní by se měla třída 'dark' vrátit na své místo
|
||||
160 | await expect(page.locator('html')).toHaveClass(/dark/);
|
||||
161 |
|
||||
162 | // A můžeme ověřit, že se změnila barva pozadí na tmavou
|
||||
163 | await expect(page.locator('body')).toHaveCSS('background-color', 'rgb(25, 20, 36)');
|
||||
164 | });
|
||||
165 | test('přepnutí z light do dark', async ({ page }) => {
|
||||
166 | // Počkáme, až se web načte a ujistíme se, že je fakt světlý
|
||||
167 | const html = page.locator('html');
|
||||
168 | await html.evaluate(el => el.classList.remove('dark'));
|
||||
169 |
|
||||
170 | await expect(html).not.toHaveClass(/dark/);
|
||||
171 |
|
||||
172 | // Teď klikni na přepínač
|
||||
> 173 | await page.locator('.data-theme').click(); // Zde doplň svůj reálný selektor
|
||||
| ^ Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
174 |
|
||||
175 | // A teď už musí být dark
|
||||
176 | await expect(html).toHaveClass(/dark/);
|
||||
177 | });
|
||||
178 | });
|
||||
179 |
|
||||
180 |
|
||||
181 |
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 4.2 KiB |
Binary file not shown.
+252
@@ -0,0 +1,252 @@
|
||||
# Instructions
|
||||
|
||||
- Following Playwright test failed.
|
||||
- Explain why, be concise, respect Playwright best practices.
|
||||
- Provide a snippet of code with the fix, if possible.
|
||||
|
||||
# Test info
|
||||
|
||||
- Name: homePage.test.ts >> dark >> přepnutí ze světlého startu do tmavého režimu
|
||||
- Location: tests/homePage.test.ts:138:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Test timeout of 30000ms exceeded.
|
||||
```
|
||||
|
||||
```
|
||||
Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
Call log:
|
||||
- waiting for locator('button.theme-switcher, .mode-switcher')
|
||||
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [active] [ref=e1]:
|
||||
- banner [ref=e2]:
|
||||
- generic [ref=e3]:
|
||||
- link "EndeavourOS Logo CZ" [ref=e4] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- img "EndeavourOS Logo" [ref=e5]
|
||||
- generic [ref=e6]: CZ
|
||||
- navigation [ref=e7]:
|
||||
- list [ref=e8]:
|
||||
- listitem [ref=e9]:
|
||||
- link "Domů" [ref=e10] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- listitem [ref=e11]:
|
||||
- link "EndeavourOS" [ref=e12] [cursor=pointer]:
|
||||
- /url: /endeavouros.php
|
||||
- listitem [ref=e13]:
|
||||
- link "Články" [ref=e14] [cursor=pointer]:
|
||||
- /url: /rozcestnik.php
|
||||
- listitem [ref=e15]:
|
||||
- link "Krátké návody" [ref=e16] [cursor=pointer]:
|
||||
- /url: /cheatsheet.php
|
||||
- listitem [ref=e17]:
|
||||
- link "Fórum" [ref=e18] [cursor=pointer]:
|
||||
- /url: https://forum.arch-linux.cz/
|
||||
- listitem [ref=e19]:
|
||||
- link "O nás" [ref=e20] [cursor=pointer]:
|
||||
- /url: /o-nas.php
|
||||
- generic [ref=e21]:
|
||||
- textbox "Hledat v článcích..." [ref=e23]
|
||||
- button "Sdílet stránku" [ref=e24] [cursor=pointer]:
|
||||
- generic [ref=e25]:
|
||||
- text: Sdílet
|
||||
- button "Přepnout téma" [ref=e26] [cursor=pointer]:
|
||||
- generic [ref=e27]:
|
||||
- main [ref=e28]:
|
||||
- generic [ref=e29]:
|
||||
- heading "🇨🇿 Vítám Tě na webu České komunity EndeavourOS! 🇨🇿" [level=1] [ref=e30]
|
||||
- paragraph [ref=e31]: Lehká, rychlá a moderní distribuce založená na Arch Linuxu.
|
||||
- heading "Je navržena tak, aby poskytovala uživatelům přístup k nejnovějším technologiím a softwaru, přičemž zachovává jednoduchost a stabilitu. Distribuce nabízí několik předinstalovaných prostředí." [level=4] [ref=e32]
|
||||
- heading "👇 Začínáme 👇" [level=2] [ref=e33]
|
||||
- generic [ref=e34]:
|
||||
- 'link "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon... 2026-04-28" [ref=e35] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME"
|
||||
- 'heading "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME" [level=3] [ref=e36]'
|
||||
- paragraph [ref=e37]: Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon...
|
||||
- generic [ref=e38]: 2026-04-28
|
||||
- link "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows... 2026-04-28" [ref=e39] [cursor=pointer]:
|
||||
- /url: /article.php?slug=⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky
|
||||
- heading "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky" [level=3] [ref=e40]
|
||||
- paragraph [ref=e41]: Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows...
|
||||
- generic [ref=e42]: 2026-04-28
|
||||
- 'link "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č... 2026-04-28" [ref=e43] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME"
|
||||
- 'heading "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME" [level=3] [ref=e44]'
|
||||
- paragraph [ref=e45]: Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č...
|
||||
- generic [ref=e46]: 2026-04-28
|
||||
- 'link "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta... 2026-04-28" [ref=e47] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované"
|
||||
- 'heading "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované" [level=3] [ref=e48]'
|
||||
- paragraph [ref=e49]: Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta...
|
||||
- generic [ref=e50]: 2026-04-28
|
||||
- link "💽 Jak připojit nový SSD disk v EndeavourOS Určíme přidaný disk (dle názvu či velikosti), v mém případě ... 2026-04-28" [ref=e51] [cursor=pointer]:
|
||||
- /url: /article.php?slug=💽 Jak připojit nový SSD disk v EndeavourOS
|
||||
- heading "💽 Jak připojit nový SSD disk v EndeavourOS" [level=3] [ref=e52]
|
||||
- paragraph [ref=e53]: Určíme přidaný disk (dle názvu či velikosti), v mém případě ...
|
||||
- generic [ref=e54]: 2026-04-28
|
||||
- link "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac Jak lehce instalovat aplikace pomocí grafického správce Pamac... 2026-04-28" [ref=e55] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak lehce instalovat aplikace pomocí grafického správce Pamac
|
||||
- heading "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac" [level=3] [ref=e56]
|
||||
- paragraph [ref=e57]: Jak lehce instalovat aplikace pomocí grafického správce Pamac...
|
||||
- generic [ref=e58]: 2026-04-28
|
||||
- link "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků... 2026-04-28" [ref=e59] [cursor=pointer]:
|
||||
- /url: /article.php?slug=AUR packages a jak nainstalovat aplikaci pomocí YAY
|
||||
- heading "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY" [level=3] [ref=e60]
|
||||
- paragraph [ref=e61]: EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků...
|
||||
- generic [ref=e62]: 2026-04-28
|
||||
- link "🚨 Jak zapnout upozornění na nové aktualizace Jak zapnout upozornění na nové aktualizace... 2026-04-28" [ref=e63] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak zapnout upozornění na nové aktualizace
|
||||
- heading "🚨 Jak zapnout upozornění na nové aktualizace" [level=3] [ref=e64]
|
||||
- paragraph [ref=e65]: Jak zapnout upozornění na nové aktualizace...
|
||||
- generic [ref=e66]: 2026-04-28
|
||||
- link "🐧 Linux pacman příkazy Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc... 2026-04-28" [ref=e67] [cursor=pointer]:
|
||||
- /url: /article.php?slug=🐧 Linux pacman příkazy
|
||||
- heading "🐧 Linux pacman příkazy" [level=3] [ref=e68]
|
||||
- paragraph [ref=e69]: Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc...
|
||||
- generic [ref=e70]: 2026-04-28
|
||||
- contentinfo [ref=e71]:
|
||||
- generic [ref=e72]:
|
||||
- paragraph [ref=e73]: © 2026 EndeavourOS CZ Komunita. Vytvořeno s láskou k Linuxu ❤️.
|
||||
- paragraph [ref=e74]:
|
||||
- link "Zásady ochrany osobních údajů" [ref=e75] [cursor=pointer]:
|
||||
- /url: /privacy-policy.php
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
56 | });
|
||||
57 |
|
||||
58 | test('navigation to Krátké návody', async ({ page }) => {
|
||||
59 | await homePage.clickMenuItem('Krátké návody');
|
||||
60 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/cheatsheet`));
|
||||
61 | });
|
||||
62 |
|
||||
63 | // Seznam externích odkazů, které chceme prověřit
|
||||
64 | // Nyní nejde nutno doopravit
|
||||
65 | // test('externí odkazy v menu jsou platné', async ({ page, request }) => {
|
||||
66 | // const homePage = new HomePage(page);
|
||||
67 | // await homePage.navigate();
|
||||
68 |
|
||||
69 | // Seznam externích odkazů, které chceme prověřit
|
||||
70 | // test('kontrola externích odkazů na zdraví (status 200)', async ({ page, request }) => {
|
||||
71 | // const homePage = new HomePage(page);
|
||||
72 | // await homePage.navigate();
|
||||
73 |
|
||||
74 | // for (const link of externalLinks) {
|
||||
75 | // // Ověříme, že text tlačítka je na stránce vidět
|
||||
76 | // const href = await homePage.getMenuItemHref(link.name);
|
||||
77 |
|
||||
78 | // // Ověříme, že href v HTML odpovídá tomu, co máme v datech
|
||||
79 | // expect(href).toBe(link.url);
|
||||
80 |
|
||||
81 | // // Provedeme rychlou kontrolu, zda link není "mrtvý"
|
||||
82 | // const response = await request.get(link.url);
|
||||
83 | // expect(response.ok(), `Odkaz ${link.name} na adrese ${link.url} vrací chybu!`).toBeTruthy();
|
||||
84 |
|
||||
85 | // console.log(`Log: Odkaz "${link.name}" je v pořádku.`);
|
||||
86 | // }
|
||||
87 | // });
|
||||
88 |
|
||||
89 | //funkční řešení - otevře web
|
||||
90 | test('externí Fórum -> odkaz má správnou adresu', async () => {
|
||||
91 | const href = await homePage.getMenuItemLinkHref('Fórum'); // Příklad
|
||||
92 | expect(href).toBe('https://forum.arch-linux.cz/');
|
||||
93 | });
|
||||
94 |
|
||||
95 | test('navigation to O nás', async ({ page }) => {
|
||||
96 | await homePage.clickMenuItem('O nás');
|
||||
97 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/o-nas`));
|
||||
98 | });
|
||||
99 | });
|
||||
100 |
|
||||
101 | test.describe('Theme', () => {
|
||||
102 | let homePage: HomePage;
|
||||
103 |
|
||||
104 | test.beforeEach(async ({ page }) => {
|
||||
105 | homePage = new HomePage(page);
|
||||
106 | await homePage.navigate();
|
||||
107 | });
|
||||
108 | test('switch theme sun', async ({ page }) => {
|
||||
109 | await homePage.switchThemeFunction()
|
||||
110 | })
|
||||
111 |
|
||||
112 | })
|
||||
113 |
|
||||
114 | test.describe('Carts (Karty) na HomePage', () => {
|
||||
115 | let homePage: HomePage;
|
||||
116 |
|
||||
117 | test.beforeEach(async ({ page }) => {
|
||||
118 | homePage = new HomePage(page);
|
||||
119 | await homePage.navigate();
|
||||
120 | });
|
||||
121 |
|
||||
122 | // Otestuje textace na kartách
|
||||
123 | test('should display all cards correctly', async () => {
|
||||
124 | for (const card of homePageCards) {
|
||||
125 | // Používáme naši POM metodu pro každou kartu
|
||||
126 | await homePage.verifyCardContent(card.title, card.description);
|
||||
127 | }
|
||||
128 | });
|
||||
129 |
|
||||
130 | // test('should navigate after clicking on a specific card', async ({ page }) => {
|
||||
131 | // // Příklad pro jednu konkrétní kartu
|
||||
132 | // await homePage.clickCardButton('Lehkost a rychlost');
|
||||
133 | // // Zde by následoval expect na novou URL
|
||||
134 | // });
|
||||
135 | });
|
||||
136 | });
|
||||
137 | test.describe('dark', () => {
|
||||
138 | test('přepnutí ze světlého startu do tmavého režimu', async ({ page }) => {
|
||||
139 | // 1. FÁZE: Vynucení světlého režimu před startem
|
||||
140 | // EndeavourOS.cz je defaultně tmavý, takže mu musíme zakázat třídu 'dark'
|
||||
141 | await page.addInitScript(() => {
|
||||
142 | document.documentElement.classList.remove('dark');
|
||||
143 | window.localStorage.setItem('theme', 'light');
|
||||
144 | });
|
||||
145 |
|
||||
146 | // 2. FÁZE: Načtení stránky
|
||||
147 | await page.goto('https://endeavouros.cz');
|
||||
148 |
|
||||
149 | // Kontrola, že jsme skutečně začali ve světlém (třída 'dark' chybí)
|
||||
150 | await expect(page.locator('html')).not.toHaveClass(/dark/);
|
||||
151 |
|
||||
152 | // 3. FÁZE: Akce - kliknutí na přepínač
|
||||
153 | // Na webu EndeavourOS.cz je to obvykle tlačítko v menu nebo záhlaví
|
||||
154 | // Tip: Použijeme ARIA label nebo ikonu, pokud známe selektor
|
||||
155 | const themeSwitcher = page.locator('button.theme-switcher, .mode-switcher');
|
||||
> 156 | await themeSwitcher.click();
|
||||
| ^ Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
157 |
|
||||
158 | // 4. FÁZE: Ověření výsledku
|
||||
159 | // Nyní by se měla třída 'dark' vrátit na své místo
|
||||
160 | await expect(page.locator('html')).toHaveClass(/dark/);
|
||||
161 |
|
||||
162 | // A můžeme ověřit, že se změnila barva pozadí na tmavou
|
||||
163 | await expect(page.locator('body')).toHaveCSS('background-color', 'rgb(25, 20, 36)');
|
||||
164 | });
|
||||
165 | test('přepnutí z light do dark', async ({ page }) => {
|
||||
166 | // Počkáme, až se web načte a ujistíme se, že je fakt světlý
|
||||
167 | const html = page.locator('html');
|
||||
168 | await html.evaluate(el => el.classList.remove('dark'));
|
||||
169 |
|
||||
170 | await expect(html).not.toHaveClass(/dark/);
|
||||
171 |
|
||||
172 | // Teď klikni na přepínač
|
||||
173 | await page.locator('.tlačítko-přepínače').click(); // Zde doplň svůj reálný selektor
|
||||
174 |
|
||||
175 | // A teď už musí být dark
|
||||
176 | await expect(html).toHaveClass(/dark/);
|
||||
177 | });
|
||||
178 | });
|
||||
179 |
|
||||
180 |
|
||||
181 |
|
||||
```
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
BIN
Binary file not shown.
+239
@@ -0,0 +1,239 @@
|
||||
# Instructions
|
||||
|
||||
- Following Playwright test failed.
|
||||
- Explain why, be concise, respect Playwright best practices.
|
||||
- Provide a snippet of code with the fix, if possible.
|
||||
|
||||
# Test info
|
||||
|
||||
- Name: homePage.test.ts >> dark >> startuje přímo ve světlém režimu
|
||||
- Location: tests/homePage.test.ts:152:7
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: expect(locator).toHaveAttribute(expected) failed
|
||||
|
||||
Locator: locator('html')
|
||||
Expected: "light"
|
||||
Received: "dark"
|
||||
Timeout: 5000ms
|
||||
|
||||
Call log:
|
||||
- Expect "toHaveAttribute" with timeout 5000ms
|
||||
- waiting for locator('html')
|
||||
9 × locator resolved to <html lang="cs" data-theme="dark">…</html>
|
||||
- unexpected value "dark"
|
||||
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [active] [ref=e1]:
|
||||
- banner [ref=e2]:
|
||||
- generic [ref=e3]:
|
||||
- link "EndeavourOS Logo CZ" [ref=e4] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- img "EndeavourOS Logo" [ref=e5]
|
||||
- generic [ref=e6]: CZ
|
||||
- navigation [ref=e7]:
|
||||
- list [ref=e8]:
|
||||
- listitem [ref=e9]:
|
||||
- link "Domů" [ref=e10] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- listitem [ref=e11]:
|
||||
- link "EndeavourOS" [ref=e12] [cursor=pointer]:
|
||||
- /url: /endeavouros.php
|
||||
- listitem [ref=e13]:
|
||||
- link "Články" [ref=e14] [cursor=pointer]:
|
||||
- /url: /rozcestnik.php
|
||||
- listitem [ref=e15]:
|
||||
- link "Krátké návody" [ref=e16] [cursor=pointer]:
|
||||
- /url: /cheatsheet.php
|
||||
- listitem [ref=e17]:
|
||||
- link "Fórum" [ref=e18] [cursor=pointer]:
|
||||
- /url: https://forum.arch-linux.cz/
|
||||
- listitem [ref=e19]:
|
||||
- link "O nás" [ref=e20] [cursor=pointer]:
|
||||
- /url: /o-nas.php
|
||||
- generic [ref=e21]:
|
||||
- textbox "Hledat v článcích..." [ref=e23]
|
||||
- button "Sdílet stránku" [ref=e24] [cursor=pointer]:
|
||||
- generic [ref=e25]:
|
||||
- text: Sdílet
|
||||
- button "Přepnout téma" [ref=e26] [cursor=pointer]:
|
||||
- generic [ref=e27]:
|
||||
- main [ref=e28]:
|
||||
- generic [ref=e29]:
|
||||
- heading "🇨🇿 Vítám Tě na webu České komunity EndeavourOS! 🇨🇿" [level=1] [ref=e30]
|
||||
- paragraph [ref=e31]: Lehká, rychlá a moderní distribuce založená na Arch Linuxu.
|
||||
- heading "Je navržena tak, aby poskytovala uživatelům přístup k nejnovějším technologiím a softwaru, přičemž zachovává jednoduchost a stabilitu. Distribuce nabízí několik předinstalovaných prostředí." [level=4] [ref=e32]
|
||||
- heading "👇 Začínáme 👇" [level=2] [ref=e33]
|
||||
- generic [ref=e34]:
|
||||
- 'link "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon... 2026-04-28" [ref=e35] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME"
|
||||
- 'heading "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME" [level=3] [ref=e36]'
|
||||
- paragraph [ref=e37]: Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon...
|
||||
- generic [ref=e38]: 2026-04-28
|
||||
- link "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows... 2026-04-28" [ref=e39] [cursor=pointer]:
|
||||
- /url: /article.php?slug=⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky
|
||||
- heading "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky" [level=3] [ref=e40]
|
||||
- paragraph [ref=e41]: Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows...
|
||||
- generic [ref=e42]: 2026-04-28
|
||||
- 'link "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č... 2026-04-28" [ref=e43] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME"
|
||||
- 'heading "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME" [level=3] [ref=e44]'
|
||||
- paragraph [ref=e45]: Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č...
|
||||
- generic [ref=e46]: 2026-04-28
|
||||
- 'link "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta... 2026-04-28" [ref=e47] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované"
|
||||
- 'heading "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované" [level=3] [ref=e48]'
|
||||
- paragraph [ref=e49]: Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta...
|
||||
- generic [ref=e50]: 2026-04-28
|
||||
- link "💽 Jak připojit nový SSD disk v EndeavourOS Určíme přidaný disk (dle názvu či velikosti), v mém případě ... 2026-04-28" [ref=e51] [cursor=pointer]:
|
||||
- /url: /article.php?slug=💽 Jak připojit nový SSD disk v EndeavourOS
|
||||
- heading "💽 Jak připojit nový SSD disk v EndeavourOS" [level=3] [ref=e52]
|
||||
- paragraph [ref=e53]: Určíme přidaný disk (dle názvu či velikosti), v mém případě ...
|
||||
- generic [ref=e54]: 2026-04-28
|
||||
- link "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac Jak lehce instalovat aplikace pomocí grafického správce Pamac... 2026-04-28" [ref=e55] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak lehce instalovat aplikace pomocí grafického správce Pamac
|
||||
- heading "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac" [level=3] [ref=e56]
|
||||
- paragraph [ref=e57]: Jak lehce instalovat aplikace pomocí grafického správce Pamac...
|
||||
- generic [ref=e58]: 2026-04-28
|
||||
- link "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků... 2026-04-28" [ref=e59] [cursor=pointer]:
|
||||
- /url: /article.php?slug=AUR packages a jak nainstalovat aplikaci pomocí YAY
|
||||
- heading "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY" [level=3] [ref=e60]
|
||||
- paragraph [ref=e61]: EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků...
|
||||
- generic [ref=e62]: 2026-04-28
|
||||
- link "🚨 Jak zapnout upozornění na nové aktualizace Jak zapnout upozornění na nové aktualizace... 2026-04-28" [ref=e63] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak zapnout upozornění na nové aktualizace
|
||||
- heading "🚨 Jak zapnout upozornění na nové aktualizace" [level=3] [ref=e64]
|
||||
- paragraph [ref=e65]: Jak zapnout upozornění na nové aktualizace...
|
||||
- generic [ref=e66]: 2026-04-28
|
||||
- link "🐧 Linux pacman příkazy Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc... 2026-04-28" [ref=e67] [cursor=pointer]:
|
||||
- /url: /article.php?slug=🐧 Linux pacman příkazy
|
||||
- heading "🐧 Linux pacman příkazy" [level=3] [ref=e68]
|
||||
- paragraph [ref=e69]: Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc...
|
||||
- generic [ref=e70]: 2026-04-28
|
||||
- contentinfo [ref=e71]:
|
||||
- generic [ref=e72]:
|
||||
- paragraph [ref=e73]: © 2026 EndeavourOS CZ Komunita. Vytvořeno s láskou k Linuxu ❤️.
|
||||
- paragraph [ref=e74]:
|
||||
- link "Zásady ochrany osobních údajů" [ref=e75] [cursor=pointer]:
|
||||
- /url: /privacy-policy.php
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
54 | await homePage.clickMenuItem('Články');
|
||||
55 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/rozcestnik`));
|
||||
56 | });
|
||||
57 |
|
||||
58 | test('navigation to Krátké návody', async ({ page }) => {
|
||||
59 | await homePage.clickMenuItem('Krátké návody');
|
||||
60 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/cheatsheet`));
|
||||
61 | });
|
||||
62 |
|
||||
63 | // Seznam externích odkazů, které chceme prověřit
|
||||
64 | // Nyní nejde nutno doopravit
|
||||
65 | // test('externí odkazy v menu jsou platné', async ({ page, request }) => {
|
||||
66 | // const homePage = new HomePage(page);
|
||||
67 | // await homePage.navigate();
|
||||
68 |
|
||||
69 | // Seznam externích odkazů, které chceme prověřit
|
||||
70 | // test('kontrola externích odkazů na zdraví (status 200)', async ({ page, request }) => {
|
||||
71 | // const homePage = new HomePage(page);
|
||||
72 | // await homePage.navigate();
|
||||
73 |
|
||||
74 | // for (const link of externalLinks) {
|
||||
75 | // // Ověříme, že text tlačítka je na stránce vidět
|
||||
76 | // const href = await homePage.getMenuItemHref(link.name);
|
||||
77 |
|
||||
78 | // // Ověříme, že href v HTML odpovídá tomu, co máme v datech
|
||||
79 | // expect(href).toBe(link.url);
|
||||
80 |
|
||||
81 | // // Provedeme rychlou kontrolu, zda link není "mrtvý"
|
||||
82 | // const response = await request.get(link.url);
|
||||
83 | // expect(response.ok(), `Odkaz ${link.name} na adrese ${link.url} vrací chybu!`).toBeTruthy();
|
||||
84 |
|
||||
85 | // console.log(`Log: Odkaz "${link.name}" je v pořádku.`);
|
||||
86 | // }
|
||||
87 | // });
|
||||
88 |
|
||||
89 | //funkční řešení - otevře web
|
||||
90 | test('externí Fórum -> odkaz má správnou adresu', async () => {
|
||||
91 | const href = await homePage.getMenuItemLinkHref('Fórum'); // Příklad
|
||||
92 | expect(href).toBe('https://forum.arch-linux.cz/');
|
||||
93 | });
|
||||
94 |
|
||||
95 | test('navigation to O nás', async ({ page }) => {
|
||||
96 | await homePage.clickMenuItem('O nás');
|
||||
97 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/o-nas`));
|
||||
98 | });
|
||||
99 | });
|
||||
100 |
|
||||
101 | test.describe('Theme', () => {
|
||||
102 | let homePage: HomePage;
|
||||
103 |
|
||||
104 | test.beforeEach(async ({ page }) => {
|
||||
105 | homePage = new HomePage(page);
|
||||
106 | await homePage.navigate();
|
||||
107 | });
|
||||
108 | test('switch theme sun', async ({ page }) => {
|
||||
109 | await homePage.switchThemeFunction()
|
||||
110 | })
|
||||
111 |
|
||||
112 | })
|
||||
113 |
|
||||
114 | test.describe('Carts (Karty) na HomePage', () => {
|
||||
115 | let homePage: HomePage;
|
||||
116 |
|
||||
117 | test.beforeEach(async ({ page }) => {
|
||||
118 | homePage = new HomePage(page);
|
||||
119 | await homePage.navigate();
|
||||
120 | });
|
||||
121 |
|
||||
122 | // Otestuje textace na kartách
|
||||
123 | test('should display all cards correctly', async () => {
|
||||
124 | for (const card of homePageCards) {
|
||||
125 | // Používáme naši POM metodu pro každou kartu
|
||||
126 | await homePage.verifyCardContent(card.title, card.description);
|
||||
127 | }
|
||||
128 | });
|
||||
129 |
|
||||
130 | // test('should navigate after clicking on a specific card', async ({ page }) => {
|
||||
131 | // // Příklad pro jednu konkrétní kartu
|
||||
132 | // await homePage.clickCardButton('Lehkost a rychlost');
|
||||
133 | // // Zde by následoval expect na novou URL
|
||||
134 | // });
|
||||
135 | });
|
||||
136 | });
|
||||
137 | test.describe('dark', () => {
|
||||
138 | test.beforeEach(async ({ page }) => {
|
||||
139 | await page.emulateMedia({ colorScheme: 'light' });
|
||||
140 | // 1. NEJDŘÍV připravíme prostředí (vstříkneme skript)
|
||||
141 | await page.addInitScript(() => {
|
||||
142 | // Nastavíme atribut, podle kterého web barví
|
||||
143 | document.documentElement.setAttribute('data-theme', 'light');
|
||||
144 | // A preventivně i localStorage, kdyby si to web kontroloval tam
|
||||
145 | //window.localStorage.setItem('theme', 'light');
|
||||
146 | });
|
||||
147 |
|
||||
148 | // 2. POTÉ teprve jdeme na web
|
||||
149 | await page.goto('https://endeavouros.cz');
|
||||
150 | });
|
||||
151 |
|
||||
152 | test('startuje přímo ve světlém režimu', async ({ page }) => {
|
||||
153 | // Nyní už rovnou ověřuješ, že je vše světlé
|
||||
> 154 | await expect(page.locator('html')).toHaveAttribute('data-theme', 'light');
|
||||
| ^ Error: expect(locator).toHaveAttribute(expected) failed
|
||||
155 | });
|
||||
156 |
|
||||
157 |
|
||||
158 | });
|
||||
159 |
|
||||
160 |
|
||||
161 |
|
||||
```
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
Binary file not shown.
Binary file not shown.
+238
@@ -0,0 +1,238 @@
|
||||
# Instructions
|
||||
|
||||
- Following Playwright test failed.
|
||||
- Explain why, be concise, respect Playwright best practices.
|
||||
- Provide a snippet of code with the fix, if possible.
|
||||
|
||||
# Test info
|
||||
|
||||
- Name: homePage.test.ts >> přepnutí ze světlého startu do tmavého režimu
|
||||
- Location: tests/homePage.test.ts:137:5
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Test timeout of 30000ms exceeded.
|
||||
```
|
||||
|
||||
```
|
||||
Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
Call log:
|
||||
- waiting for locator('button.theme-switcher, .mode-switcher')
|
||||
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [active] [ref=e1]:
|
||||
- banner [ref=e2]:
|
||||
- generic [ref=e3]:
|
||||
- link "EndeavourOS Logo CZ" [ref=e4] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- img "EndeavourOS Logo" [ref=e5]
|
||||
- generic [ref=e6]: CZ
|
||||
- navigation [ref=e7]:
|
||||
- list [ref=e8]:
|
||||
- listitem [ref=e9]:
|
||||
- link "Domů" [ref=e10] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- listitem [ref=e11]:
|
||||
- link "EndeavourOS" [ref=e12] [cursor=pointer]:
|
||||
- /url: /endeavouros.php
|
||||
- listitem [ref=e13]:
|
||||
- link "Články" [ref=e14] [cursor=pointer]:
|
||||
- /url: /rozcestnik.php
|
||||
- listitem [ref=e15]:
|
||||
- link "Krátké návody" [ref=e16] [cursor=pointer]:
|
||||
- /url: /cheatsheet.php
|
||||
- listitem [ref=e17]:
|
||||
- link "Fórum" [ref=e18] [cursor=pointer]:
|
||||
- /url: https://forum.arch-linux.cz/
|
||||
- listitem [ref=e19]:
|
||||
- link "O nás" [ref=e20] [cursor=pointer]:
|
||||
- /url: /o-nas.php
|
||||
- generic [ref=e21]:
|
||||
- textbox "Hledat v článcích..." [ref=e23]
|
||||
- button "Sdílet stránku" [ref=e24] [cursor=pointer]:
|
||||
- generic [ref=e25]:
|
||||
- text: Sdílet
|
||||
- button "Přepnout téma" [ref=e26] [cursor=pointer]:
|
||||
- generic [ref=e27]:
|
||||
- main [ref=e28]:
|
||||
- generic [ref=e29]:
|
||||
- heading "🇨🇿 Vítám Tě na webu České komunity EndeavourOS! 🇨🇿" [level=1] [ref=e30]
|
||||
- paragraph [ref=e31]: Lehká, rychlá a moderní distribuce založená na Arch Linuxu.
|
||||
- heading "Je navržena tak, aby poskytovala uživatelům přístup k nejnovějším technologiím a softwaru, přičemž zachovává jednoduchost a stabilitu. Distribuce nabízí několik předinstalovaných prostředí." [level=4] [ref=e32]
|
||||
- heading "👇 Začínáme 👇" [level=2] [ref=e33]
|
||||
- generic [ref=e34]:
|
||||
- 'link "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon... 2026-04-28" [ref=e35] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME"
|
||||
- 'heading "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME" [level=3] [ref=e36]'
|
||||
- paragraph [ref=e37]: Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon...
|
||||
- generic [ref=e38]: 2026-04-28
|
||||
- link "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows... 2026-04-28" [ref=e39] [cursor=pointer]:
|
||||
- /url: /article.php?slug=⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky
|
||||
- heading "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky" [level=3] [ref=e40]
|
||||
- paragraph [ref=e41]: Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows...
|
||||
- generic [ref=e42]: 2026-04-28
|
||||
- 'link "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č... 2026-04-28" [ref=e43] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME"
|
||||
- 'heading "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME" [level=3] [ref=e44]'
|
||||
- paragraph [ref=e45]: Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č...
|
||||
- generic [ref=e46]: 2026-04-28
|
||||
- 'link "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta... 2026-04-28" [ref=e47] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované"
|
||||
- 'heading "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované" [level=3] [ref=e48]'
|
||||
- paragraph [ref=e49]: Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta...
|
||||
- generic [ref=e50]: 2026-04-28
|
||||
- link "💽 Jak připojit nový SSD disk v EndeavourOS Určíme přidaný disk (dle názvu či velikosti), v mém případě ... 2026-04-28" [ref=e51] [cursor=pointer]:
|
||||
- /url: /article.php?slug=💽 Jak připojit nový SSD disk v EndeavourOS
|
||||
- heading "💽 Jak připojit nový SSD disk v EndeavourOS" [level=3] [ref=e52]
|
||||
- paragraph [ref=e53]: Určíme přidaný disk (dle názvu či velikosti), v mém případě ...
|
||||
- generic [ref=e54]: 2026-04-28
|
||||
- link "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac Jak lehce instalovat aplikace pomocí grafického správce Pamac... 2026-04-28" [ref=e55] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak lehce instalovat aplikace pomocí grafického správce Pamac
|
||||
- heading "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac" [level=3] [ref=e56]
|
||||
- paragraph [ref=e57]: Jak lehce instalovat aplikace pomocí grafického správce Pamac...
|
||||
- generic [ref=e58]: 2026-04-28
|
||||
- link "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků... 2026-04-28" [ref=e59] [cursor=pointer]:
|
||||
- /url: /article.php?slug=AUR packages a jak nainstalovat aplikaci pomocí YAY
|
||||
- heading "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY" [level=3] [ref=e60]
|
||||
- paragraph [ref=e61]: EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků...
|
||||
- generic [ref=e62]: 2026-04-28
|
||||
- link "🚨 Jak zapnout upozornění na nové aktualizace Jak zapnout upozornění na nové aktualizace... 2026-04-28" [ref=e63] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak zapnout upozornění na nové aktualizace
|
||||
- heading "🚨 Jak zapnout upozornění na nové aktualizace" [level=3] [ref=e64]
|
||||
- paragraph [ref=e65]: Jak zapnout upozornění na nové aktualizace...
|
||||
- generic [ref=e66]: 2026-04-28
|
||||
- link "🐧 Linux pacman příkazy Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc... 2026-04-28" [ref=e67] [cursor=pointer]:
|
||||
- /url: /article.php?slug=🐧 Linux pacman příkazy
|
||||
- heading "🐧 Linux pacman příkazy" [level=3] [ref=e68]
|
||||
- paragraph [ref=e69]: Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc...
|
||||
- generic [ref=e70]: 2026-04-28
|
||||
- contentinfo [ref=e71]:
|
||||
- generic [ref=e72]:
|
||||
- paragraph [ref=e73]: © 2026 EndeavourOS CZ Komunita. Vytvořeno s láskou k Linuxu ❤️.
|
||||
- paragraph [ref=e74]:
|
||||
- link "Zásady ochrany osobních údajů" [ref=e75] [cursor=pointer]:
|
||||
- /url: /privacy-policy.php
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
55 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/rozcestnik`));
|
||||
56 | });
|
||||
57 |
|
||||
58 | test('navigation to Krátké návody', async ({ page }) => {
|
||||
59 | await homePage.clickMenuItem('Krátké návody');
|
||||
60 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/cheatsheet`));
|
||||
61 | });
|
||||
62 |
|
||||
63 | // Seznam externích odkazů, které chceme prověřit
|
||||
64 | // Nyní nejde nutno doopravit
|
||||
65 | // test('externí odkazy v menu jsou platné', async ({ page, request }) => {
|
||||
66 | // const homePage = new HomePage(page);
|
||||
67 | // await homePage.navigate();
|
||||
68 |
|
||||
69 | // Seznam externích odkazů, které chceme prověřit
|
||||
70 | // test('kontrola externích odkazů na zdraví (status 200)', async ({ page, request }) => {
|
||||
71 | // const homePage = new HomePage(page);
|
||||
72 | // await homePage.navigate();
|
||||
73 |
|
||||
74 | // for (const link of externalLinks) {
|
||||
75 | // // Ověříme, že text tlačítka je na stránce vidět
|
||||
76 | // const href = await homePage.getMenuItemHref(link.name);
|
||||
77 |
|
||||
78 | // // Ověříme, že href v HTML odpovídá tomu, co máme v datech
|
||||
79 | // expect(href).toBe(link.url);
|
||||
80 |
|
||||
81 | // // Provedeme rychlou kontrolu, zda link není "mrtvý"
|
||||
82 | // const response = await request.get(link.url);
|
||||
83 | // expect(response.ok(), `Odkaz ${link.name} na adrese ${link.url} vrací chybu!`).toBeTruthy();
|
||||
84 |
|
||||
85 | // console.log(`Log: Odkaz "${link.name}" je v pořádku.`);
|
||||
86 | // }
|
||||
87 | // });
|
||||
88 |
|
||||
89 | //funkční řešení - otevře web
|
||||
90 | test('externí Fórum -> odkaz má správnou adresu', async () => {
|
||||
91 | const href = await homePage.getMenuItemLinkHref('Fórum'); // Příklad
|
||||
92 | expect(href).toBe('https://forum.arch-linux.cz/');
|
||||
93 | });
|
||||
94 |
|
||||
95 | test('navigation to O nás', async ({ page }) => {
|
||||
96 | await homePage.clickMenuItem('O nás');
|
||||
97 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/o-nas`));
|
||||
98 | });
|
||||
99 | });
|
||||
100 |
|
||||
101 | test.describe('Theme', () => {
|
||||
102 | let homePage: HomePage;
|
||||
103 |
|
||||
104 | test.beforeEach(async ({ page }) => {
|
||||
105 | homePage = new HomePage(page);
|
||||
106 | await homePage.navigate();
|
||||
107 | });
|
||||
108 | test('switch theme sun', async ({ page }) => {
|
||||
109 | await homePage.switchThemeFunction()
|
||||
110 | })
|
||||
111 |
|
||||
112 | })
|
||||
113 |
|
||||
114 | test.describe('Carts (Karty) na HomePage', () => {
|
||||
115 | let homePage: HomePage;
|
||||
116 |
|
||||
117 | test.beforeEach(async ({ page }) => {
|
||||
118 | homePage = new HomePage(page);
|
||||
119 | await homePage.navigate();
|
||||
120 | });
|
||||
121 |
|
||||
122 | // Otestuje textace na kartách
|
||||
123 | test('should display all cards correctly', async () => {
|
||||
124 | for (const card of homePageCards) {
|
||||
125 | // Používáme naši POM metodu pro každou kartu
|
||||
126 | await homePage.verifyCardContent(card.title, card.description);
|
||||
127 | }
|
||||
128 | });
|
||||
129 |
|
||||
130 | // test('should navigate after clicking on a specific card', async ({ page }) => {
|
||||
131 | // // Příklad pro jednu konkrétní kartu
|
||||
132 | // await homePage.clickCardButton('Lehkost a rychlost');
|
||||
133 | // // Zde by následoval expect na novou URL
|
||||
134 | // });
|
||||
135 | });
|
||||
136 | });
|
||||
137 | test('přepnutí ze světlého startu do tmavého režimu', async ({ page }) => {
|
||||
138 | // 1. FÁZE: Vynucení světlého režimu před startem
|
||||
139 | // EndeavourOS.cz je defaultně tmavý, takže mu musíme zakázat třídu 'dark'
|
||||
140 | await page.addInitScript(() => {
|
||||
141 | document.documentElement.classList.remove('dark');
|
||||
142 | window.localStorage.setItem('theme', 'light');
|
||||
143 | });
|
||||
144 |
|
||||
145 | // 2. FÁZE: Načtení stránky
|
||||
146 | await page.goto('https://endeavouros.cz');
|
||||
147 |
|
||||
148 | // Kontrola, že jsme skutečně začali ve světlém (třída 'dark' chybí)
|
||||
149 | await expect(page.locator('html')).not.toHaveClass(/dark/);
|
||||
150 |
|
||||
151 | // 3. FÁZE: Akce - kliknutí na přepínač
|
||||
152 | // Na webu EndeavourOS.cz je to obvykle tlačítko v menu nebo záhlaví
|
||||
153 | // Tip: Použijeme ARIA label nebo ikonu, pokud známe selektor
|
||||
154 | const themeSwitcher = page.locator('button.theme-switcher, .mode-switcher');
|
||||
> 155 | await themeSwitcher.click();
|
||||
| ^ Error: locator.click: Test timeout of 30000ms exceeded.
|
||||
156 |
|
||||
157 | // 4. FÁZE: Ověření výsledku
|
||||
158 | // Nyní by se měla třída 'dark' vrátit na své místo
|
||||
159 | await expect(page.locator('html')).toHaveClass(/dark/);
|
||||
160 |
|
||||
161 | // A můžeme ověřit, že se změnila barva pozadí na tmavou
|
||||
162 | await expect(page.locator('body')).toHaveCSS('background-color', 'rgb(25, 20, 36)');
|
||||
163 | });
|
||||
164 |
|
||||
165 |
|
||||
166 |
|
||||
```
|
||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
BIN
Binary file not shown.
@@ -0,0 +1,231 @@
|
||||
# Instructions
|
||||
|
||||
- Following Playwright test failed.
|
||||
- Explain why, be concise, respect Playwright best practices.
|
||||
- Provide a snippet of code with the fix, if possible.
|
||||
|
||||
# Test info
|
||||
|
||||
- Name: homePage.test.ts >> startuje přímo ve světlém režimu
|
||||
- Location: tests/homePage.test.ts:137:5
|
||||
|
||||
# Error details
|
||||
|
||||
```
|
||||
Error: expect(locator).toHaveAttribute(expected) failed
|
||||
|
||||
Locator: locator('data-theme')
|
||||
Expected: "light"
|
||||
Timeout: 5000ms
|
||||
Error: element(s) not found
|
||||
|
||||
Call log:
|
||||
- Expect "toHaveAttribute" with timeout 5000ms
|
||||
- waiting for locator('data-theme')
|
||||
|
||||
```
|
||||
|
||||
# Page snapshot
|
||||
|
||||
```yaml
|
||||
- generic [active] [ref=e1]:
|
||||
- banner [ref=e2]:
|
||||
- generic [ref=e3]:
|
||||
- link "EndeavourOS Logo CZ" [ref=e4] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- img "EndeavourOS Logo" [ref=e5]
|
||||
- generic [ref=e6]: CZ
|
||||
- navigation [ref=e7]:
|
||||
- list [ref=e8]:
|
||||
- listitem [ref=e9]:
|
||||
- link "Domů" [ref=e10] [cursor=pointer]:
|
||||
- /url: /index.php
|
||||
- listitem [ref=e11]:
|
||||
- link "EndeavourOS" [ref=e12] [cursor=pointer]:
|
||||
- /url: /endeavouros.php
|
||||
- listitem [ref=e13]:
|
||||
- link "Články" [ref=e14] [cursor=pointer]:
|
||||
- /url: /rozcestnik.php
|
||||
- listitem [ref=e15]:
|
||||
- link "Krátké návody" [ref=e16] [cursor=pointer]:
|
||||
- /url: /cheatsheet.php
|
||||
- listitem [ref=e17]:
|
||||
- link "Fórum" [ref=e18] [cursor=pointer]:
|
||||
- /url: https://forum.arch-linux.cz/
|
||||
- listitem [ref=e19]:
|
||||
- link "O nás" [ref=e20] [cursor=pointer]:
|
||||
- /url: /o-nas.php
|
||||
- generic [ref=e21]:
|
||||
- textbox "Hledat v článcích..." [ref=e23]
|
||||
- button "Sdílet stránku" [ref=e24] [cursor=pointer]:
|
||||
- generic [ref=e25]:
|
||||
- text: Sdílet
|
||||
- button "Přepnout téma" [ref=e26] [cursor=pointer]:
|
||||
- generic [ref=e27]:
|
||||
- main [ref=e28]:
|
||||
- generic [ref=e29]:
|
||||
- heading "🇨🇿 Vítám Tě na webu České komunity EndeavourOS! 🇨🇿" [level=1] [ref=e30]
|
||||
- paragraph [ref=e31]: Lehká, rychlá a moderní distribuce založená na Arch Linuxu.
|
||||
- heading "Je navržena tak, aby poskytovala uživatelům přístup k nejnovějším technologiím a softwaru, přičemž zachovává jednoduchost a stabilitu. Distribuce nabízí několik předinstalovaných prostředí." [level=4] [ref=e32]
|
||||
- heading "👇 Začínáme 👇" [level=2] [ref=e33]
|
||||
- generic [ref=e34]:
|
||||
- 'link "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon... 2026-04-28" [ref=e35] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME"
|
||||
- 'heading "🚀 Přecházíme na Linux: Kompletní průvodce světem EndeavourOS a GNOME" [level=3] [ref=e36]'
|
||||
- paragraph [ref=e37]: Máte pocit, že váš počítač s Windows je čím dál pomalejší? Štve vás, že si systém dělá, co chce, a vy nad ním nemáte kon...
|
||||
- generic [ref=e38]: 2026-04-28
|
||||
- link "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows... 2026-04-28" [ref=e39] [cursor=pointer]:
|
||||
- /url: /article.php?slug=⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky
|
||||
- heading "⛵ Co je to ten Linux, EndeavourOS a GNOME? Malý slovníček pro úplné začátečníky" [level=3] [ref=e40]
|
||||
- paragraph [ref=e41]: Rozhodli jste se zkusit Linux, ale točí se vám hlava z názvů jako distribuce, prostředí, balíčky nebo AUR? Nebojte se. Ve světě Windows...
|
||||
- generic [ref=e42]: 2026-04-28
|
||||
- 'link "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č... 2026-04-28" [ref=e43] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME"
|
||||
- 'heading "🚀 Jak oživit počítač moderním systémem: Instalujeme EndeavourOS s GNOME" [level=3] [ref=e44]'
|
||||
- paragraph [ref=e45]: Láká vás svět Linuxu, konkrétně pověstná rychlost a aktuálnost Arch Linuxu, ale odrazuje vás složitá instalace přes č...
|
||||
- generic [ref=e46]: 2026-04-28
|
||||
- 'link "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta... 2026-04-28" [ref=e47] [cursor=pointer]':
|
||||
- /url: "/article.php?slug=🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované"
|
||||
- 'heading "🔥 Záchranná brzda pro váš systém: Co je to LTS jádro a proč ho mít nainstalované" [level=3] [ref=e48]'
|
||||
- paragraph [ref=e49]: Užíváte si rychlost EndeavourOS? Skvělé. Ale co když jednoho dne po aktualizaci zapnete počítač a nenaběhne grafika, nebo přesta...
|
||||
- generic [ref=e50]: 2026-04-28
|
||||
- link "💽 Jak připojit nový SSD disk v EndeavourOS Určíme přidaný disk (dle názvu či velikosti), v mém případě ... 2026-04-28" [ref=e51] [cursor=pointer]:
|
||||
- /url: /article.php?slug=💽 Jak připojit nový SSD disk v EndeavourOS
|
||||
- heading "💽 Jak připojit nový SSD disk v EndeavourOS" [level=3] [ref=e52]
|
||||
- paragraph [ref=e53]: Určíme přidaný disk (dle názvu či velikosti), v mém případě ...
|
||||
- generic [ref=e54]: 2026-04-28
|
||||
- link "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac Jak lehce instalovat aplikace pomocí grafického správce Pamac... 2026-04-28" [ref=e55] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak lehce instalovat aplikace pomocí grafického správce Pamac
|
||||
- heading "🧰 Jak lehce instalovat aplikace pomocí grafického správce Pamac" [level=3] [ref=e56]
|
||||
- paragraph [ref=e57]: Jak lehce instalovat aplikace pomocí grafického správce Pamac...
|
||||
- generic [ref=e58]: 2026-04-28
|
||||
- link "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků... 2026-04-28" [ref=e59] [cursor=pointer]:
|
||||
- /url: /article.php?slug=AUR packages a jak nainstalovat aplikaci pomocí YAY
|
||||
- heading "💾 AUR packages a jak nainstalovat aplikaci pomocí YAY" [level=3] [ref=e60]
|
||||
- paragraph [ref=e61]: EndeavourOS jako všechny ostatní distribuce rodiny Arch Linuxnabízí obří seznam balíčků...
|
||||
- generic [ref=e62]: 2026-04-28
|
||||
- link "🚨 Jak zapnout upozornění na nové aktualizace Jak zapnout upozornění na nové aktualizace... 2026-04-28" [ref=e63] [cursor=pointer]:
|
||||
- /url: /article.php?slug=Jak zapnout upozornění na nové aktualizace
|
||||
- heading "🚨 Jak zapnout upozornění na nové aktualizace" [level=3] [ref=e64]
|
||||
- paragraph [ref=e65]: Jak zapnout upozornění na nové aktualizace...
|
||||
- generic [ref=e66]: 2026-04-28
|
||||
- link "🐧 Linux pacman příkazy Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc... 2026-04-28" [ref=e67] [cursor=pointer]:
|
||||
- /url: /article.php?slug=🐧 Linux pacman příkazy
|
||||
- heading "🐧 Linux pacman příkazy" [level=3] [ref=e68]
|
||||
- paragraph [ref=e69]: Linux pacman příkazy. Pacman je nedílnou součástí Arch Linuxu a distribucí na Arc...
|
||||
- generic [ref=e70]: 2026-04-28
|
||||
- contentinfo [ref=e71]:
|
||||
- generic [ref=e72]:
|
||||
- paragraph [ref=e73]: © 2026 EndeavourOS CZ Komunita. Vytvořeno s láskou k Linuxu ❤️.
|
||||
- paragraph [ref=e74]:
|
||||
- link "Zásady ochrany osobních údajů" [ref=e75] [cursor=pointer]:
|
||||
- /url: /privacy-policy.php
|
||||
```
|
||||
|
||||
# Test source
|
||||
|
||||
```ts
|
||||
48 | test('navigation to EndeavourOS', async ({ page }) => {
|
||||
49 | await homePage.clickMenuItem('EndeavourOS');
|
||||
50 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/endeavouros`));
|
||||
51 | });
|
||||
52 |
|
||||
53 | test('navigation to Články', async ({ page }) => {
|
||||
54 | await homePage.clickMenuItem('Články');
|
||||
55 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/rozcestnik`));
|
||||
56 | });
|
||||
57 |
|
||||
58 | test('navigation to Krátké návody', async ({ page }) => {
|
||||
59 | await homePage.clickMenuItem('Krátké návody');
|
||||
60 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/cheatsheet`));
|
||||
61 | });
|
||||
62 |
|
||||
63 | // Seznam externích odkazů, které chceme prověřit
|
||||
64 | // Nyní nejde nutno doopravit
|
||||
65 | // test('externí odkazy v menu jsou platné', async ({ page, request }) => {
|
||||
66 | // const homePage = new HomePage(page);
|
||||
67 | // await homePage.navigate();
|
||||
68 |
|
||||
69 | // Seznam externích odkazů, které chceme prověřit
|
||||
70 | // test('kontrola externích odkazů na zdraví (status 200)', async ({ page, request }) => {
|
||||
71 | // const homePage = new HomePage(page);
|
||||
72 | // await homePage.navigate();
|
||||
73 |
|
||||
74 | // for (const link of externalLinks) {
|
||||
75 | // // Ověříme, že text tlačítka je na stránce vidět
|
||||
76 | // const href = await homePage.getMenuItemHref(link.name);
|
||||
77 |
|
||||
78 | // // Ověříme, že href v HTML odpovídá tomu, co máme v datech
|
||||
79 | // expect(href).toBe(link.url);
|
||||
80 |
|
||||
81 | // // Provedeme rychlou kontrolu, zda link není "mrtvý"
|
||||
82 | // const response = await request.get(link.url);
|
||||
83 | // expect(response.ok(), `Odkaz ${link.name} na adrese ${link.url} vrací chybu!`).toBeTruthy();
|
||||
84 |
|
||||
85 | // console.log(`Log: Odkaz "${link.name}" je v pořádku.`);
|
||||
86 | // }
|
||||
87 | // });
|
||||
88 |
|
||||
89 | //funkční řešení - otevře web
|
||||
90 | test('externí Fórum -> odkaz má správnou adresu', async () => {
|
||||
91 | const href = await homePage.getMenuItemLinkHref('Fórum'); // Příklad
|
||||
92 | expect(href).toBe('https://forum.arch-linux.cz/');
|
||||
93 | });
|
||||
94 |
|
||||
95 | test('navigation to O nás', async ({ page }) => {
|
||||
96 | await homePage.clickMenuItem('O nás');
|
||||
97 | await expect(page).toHaveURL(new RegExp(`.*${homePage.url}/o-nas`));
|
||||
98 | });
|
||||
99 | });
|
||||
100 |
|
||||
101 | test.describe('Theme', () => {
|
||||
102 | let homePage: HomePage;
|
||||
103 |
|
||||
104 | test.beforeEach(async ({ page }) => {
|
||||
105 | homePage = new HomePage(page);
|
||||
106 | await homePage.navigate();
|
||||
107 | });
|
||||
108 | test('switch theme sun', async ({ page }) => {
|
||||
109 | await homePage.switchThemeFunction()
|
||||
110 | })
|
||||
111 |
|
||||
112 | })
|
||||
113 |
|
||||
114 | test.describe('Carts (Karty) na HomePage', () => {
|
||||
115 | let homePage: HomePage;
|
||||
116 |
|
||||
117 | test.beforeEach(async ({ page }) => {
|
||||
118 | homePage = new HomePage(page);
|
||||
119 | await homePage.navigate();
|
||||
120 | });
|
||||
121 |
|
||||
122 | // Otestuje textace na kartách
|
||||
123 | test('should display all cards correctly', async () => {
|
||||
124 | for (const card of homePageCards) {
|
||||
125 | // Používáme naši POM metodu pro každou kartu
|
||||
126 | await homePage.verifyCardContent(card.title, card.description);
|
||||
127 | }
|
||||
128 | });
|
||||
129 |
|
||||
130 | // test('should navigate after clicking on a specific card', async ({ page }) => {
|
||||
131 | // // Příklad pro jednu konkrétní kartu
|
||||
132 | // await homePage.clickCardButton('Lehkost a rychlost');
|
||||
133 | // // Zde by následoval expect na novou URL
|
||||
134 | // });
|
||||
135 | });
|
||||
136 | });
|
||||
137 | test('startuje přímo ve světlém režimu', async ({ page }) => {
|
||||
138 | // Tento skript se spustí dříve, než se načte CSS a JS tvého webu
|
||||
139 | await page.addInitScript(() => {
|
||||
140 | document.documentElement.setAttribute('data-theme', 'light');
|
||||
141 | // Pokud ukládáš nastavení do localStorage, můžeš ho "přednastavit" i tam
|
||||
142 | window.localStorage.setItem('data-theme', 'light');
|
||||
143 | });
|
||||
144 |
|
||||
145 | await page.goto('https://endeavouros.cz');
|
||||
146 |
|
||||
147 | // Nyní už rovnou ověřuješ, že je vše světlé
|
||||
> 148 | await expect(page.locator('data-theme')).toHaveAttribute('data-theme', 'light');
|
||||
| ^ Error: expect(locator).toHaveAttribute(expected) failed
|
||||
149 | });
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 83 KiB |
Binary file not shown.
Reference in New Issue
Block a user