Změny v textacích a testech

This commit is contained in:
kankys committed 2026-07-26 22:25:12 +02:00
1 parent c815d8ca86
commit 6338ddfdca
9 files changed
+107 -153

No files matched your search

+20
View File
@@ -0,0 +1,20 @@
import { expect, type Locator, type Page } from '@playwright/test';
export class HomePage {
readonly page: Page;
constructor(page: Page) {
this.page = page;
}
// Přidej metodu pro navigaci na konkrétní soubor
async navigate(file: string = 'index.html') {
// Pokud jsme na lokálu, přidáme složku /web/
// Pokud jsme na produkci, předpokládáme root /
const prefix = process.env.BASE_URL?.includes('music.lukan.cz') ? '' : 'web/';
await this.page.goto(`${prefix}${file}`);
}
}
+4
View File
@@ -15,5 +15,9 @@
"devDependencies": {
"@playwright/test": "^1.60.0",
"@types/node": "^25.6.0"
},
"scripts": {
"test": "playwright test",
"test:prod": "BASE_URL=https://music.lukan.cz playwright test homePage.test.ts"
}
}
+11 -65
View File
@@ -1,79 +1,25 @@
import { defineConfig, devices } from '@playwright/test';
/**
* Read environment variables from file.
* https://github.com/motdotla/dotenv
*/
// import dotenv from 'dotenv';
// import path from 'path';
// dotenv.config({ path: path.resolve(__dirname, '.env') });
/**
* See https://playwright.dev/docs/test-configuration.
*/
export default defineConfig({
testDir: './e2e',
/* Run tests in files in parallel */
testDir: './tests',
fullyParallel: true,
/* Fail the build on CI if you accidentally left test.only in the source code. */
forbidOnly: !!process.env.CI,
/* Retry on CI only */
retries: process.env.CI ? 2 : 0,
/* Opt out of parallel tests on CI. */
workers: process.env.CI ? 1 : undefined,
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
reporter: 'html',
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
use: {
/* Base URL to use in actions like `await page.goto('')`. */
// baseURL: 'http://localhost:3000',
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
// Pokud v terminálu nastavíš BASE_URL, použije ho. Jinak použije localhost.
baseURL: process.env.BASE_URL || 'http://localhost:8080',
trace: 'on-first-retry',
},
/* Configure projects for major browsers */
webServer: {
// WebServer se spustí pouze tehdy, pokud NENÍ nastavena jiná BASE_URL
// (nechceme spouštět lokální server, když testujeme produkci)
command: process.env.BASE_URL ? undefined : 'npx http-server ../../ -p 8080',
url: process.env.BASE_URL || 'http://localhost:8080',
reuseExistingServer: !process.env.CI,
},
projects: [
{
name: 'chromium',
use: { ...devices['Desktop Chrome'] },
},
{
name: 'firefox',
use: { ...devices['Desktop Firefox'] },
},
{
name: 'webkit',
use: { ...devices['Desktop Safari'] },
},
/* Test against mobile viewports. */
// {
// name: 'Mobile Chrome',
// use: { ...devices['Pixel 5'] },
// },
// {
// name: 'Mobile Safari',
// use: { ...devices['iPhone 12'] },
// },
/* Test against branded browsers. */
// {
// name: 'Microsoft Edge',
// use: { ...devices['Desktop Edge'], channel: 'msedge' },
// },
// {
// name: 'Google Chrome',
// use: { ...devices['Desktop Chrome'], channel: 'chrome' },
// },
],
/* Run your local dev server before starting the tests */
// webServer: {
// command: 'npm run start',
// url: 'http://localhost:3000',
// reuseExistingServer: !process.env.CI,
// },
});
});
-20
View File
@@ -1,20 +0,0 @@
import { test, expect } from '@playwright/test';
test('has title', async ({ page }) => {
await page.goto('https://music.lukan.cz');
// Expect a title "to contain" a substring.
await expect(page).toHaveTitle(/Zažij numetal a grunge každý den, po celý rok./);
});
test('get started link', async ({ page }) => {
await page.goto('https://music.lukan.cz');
// // Click the get started link.
// await page.getByRole('link', { name: 'O projektu' }).click();
// // Expects page to have a heading with the name of Installation.
// await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
});
+19
View File
@@ -0,0 +1,19 @@
import { test, expect } from '@playwright/test';
import { HomePage } from '../assets/pages/HomePage';
let homePage: HomePage;
test.describe('Home page', () => {
// Před každým testem vytvoříme novou instanci stránky
test.beforeEach(async ({ page }) => {
homePage = new HomePage(page);
await homePage.navigate();
});
test('has title', async ({ page }) => {
await homePage.navigate('index.html');
await expect(homePage.page).toHaveURL(/\/index\.html$/); // Odolné testování URL
await expect(page).toHaveTitle('Zažij numetal a grunge každý den, po celý rok.');
});
});