From 081ca81cb988ce50c3b269f7e868a882970d9dc1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20D=C4=9Bdi=C4=8D?= Date: Thu, 9 Jan 2025 15:33:17 +0100 Subject: [PATCH] Migrated pages tests to vitest --- .../__snapshots__/IssuesList.test.tsx.snap | 128 ------ .../__snapshots__/ProjectsList.test.tsx.snap | 116 ------ .../pages/IssueDetail.test.tsx | 7 + .../pages/IssuesList.test.tsx | 4 + .../pages/ProjectDetail.test.tsx | 7 + .../pages/ProjectsList.test.tsx | 4 + .../__snapshots__/IssueDetail.test.tsx.snap | 389 ++++-------------- .../__snapshots__/IssuesList.test.tsx.snap | 59 +++ .../__snapshots__/ProjectDetail.test.tsx.snap | 338 ++++----------- .../__snapshots__/ProjectsList.test.tsx.snap | 47 +++ 10 files changed, 297 insertions(+), 802 deletions(-) delete mode 100644 packages/frontend/__tests__/pages/__snapshots__/IssuesList.test.tsx.snap delete mode 100644 packages/frontend/__tests__/pages/__snapshots__/ProjectsList.test.tsx.snap rename packages/frontend/{__tests__ => tests}/pages/IssueDetail.test.tsx (92%) rename packages/frontend/{__tests__ => tests}/pages/IssuesList.test.tsx (85%) rename packages/frontend/{__tests__ => tests}/pages/ProjectDetail.test.tsx (91%) rename packages/frontend/{__tests__ => tests}/pages/ProjectsList.test.tsx (85%) rename packages/frontend/{__tests__ => tests}/pages/__snapshots__/IssueDetail.test.tsx.snap (76%) create mode 100644 packages/frontend/tests/pages/__snapshots__/IssuesList.test.tsx.snap rename packages/frontend/{__tests__ => tests}/pages/__snapshots__/ProjectDetail.test.tsx.snap (78%) create mode 100644 packages/frontend/tests/pages/__snapshots__/ProjectsList.test.tsx.snap diff --git a/packages/frontend/__tests__/pages/__snapshots__/IssuesList.test.tsx.snap b/packages/frontend/__tests__/pages/__snapshots__/IssuesList.test.tsx.snap deleted file mode 100644 index a8cc602ed..000000000 --- a/packages/frontend/__tests__/pages/__snapshots__/IssuesList.test.tsx.snap +++ /dev/null @@ -1,128 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`IssuesList page should render correctly 1`] = ` -.emotion-0 { - margin: 0 0 16px; - padding-bottom: 24px; - border-bottom: 1px solid #29488510; - max-width: 600px; -} - -.emotion-1 { - color: #294885; - margin: 0 0 12px; - font-family: themix; -} - -.emotion-2 { - margin: 0 0 0.6em; -} - -.emotion-2 * { - font-size: 0.8rem; -} - -.emotion-3 { - margin: 0 0 16px; -} - -.emotion-3 img { - max-width: 100%; -} - -.emotion-4 { - background-color: #894cc033; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -.emotion-5 { - background-color: #6d52b833; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -.emotion-6 { - background-color: #8b843b33; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -.emotion-7 { - background-color: #d293ff33; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -
-

- - Add hint to set videos to public - -

-

- - WordPress plugin: Galerie obrázků a videí z Google Disku - -

-
-

- When editing and selecting a folder with videos, the editor could display a notice that setting videos to "Anyone can view" will speed them up. -

- - -

- Depends on #792 -

-
- - wordpress - - - php - - - javascript - - - google - -
-`; diff --git a/packages/frontend/__tests__/pages/__snapshots__/ProjectsList.test.tsx.snap b/packages/frontend/__tests__/pages/__snapshots__/ProjectsList.test.tsx.snap deleted file mode 100644 index 919bfab22..000000000 --- a/packages/frontend/__tests__/pages/__snapshots__/ProjectsList.test.tsx.snap +++ /dev/null @@ -1,116 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ProjectsList page should render correctly 1`] = ` -.emotion-0 { - margin: 0 0 16px; - padding-bottom: 24px; - border-bottom: 1px solid #29488510; - max-width: 600px; -} - -.emotion-1 { - color: #294885; - margin: 0 0 12px; - font-family: themix; -} - -.emotion-2 { - margin: 0 0 0.6em; -} - -.emotion-2 * { - font-size: 0.8rem; -} - -.emotion-3 { - margin: 0 0 16px; -} - -.emotion-3 img { - max-width: 100%; -} - -.emotion-4 { - background-color: #894cc033; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -.emotion-5 { - background-color: #6d52b833; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -.emotion-6 { - background-color: #8b843b33; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -.emotion-7 { - background-color: #d293ff33; - color: #444; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; -} - -
-

- - WordPress plugin: Galerie obrázků a videí z Google Disku - -

-

-

-

- Galerie obrázků a videí z Google Disku je plugin pro WordPress, který propojí web s Google Diskem. V pluginu se dá vybrat libovolná složku na Google Disku nebo ve Sdíleném disku a plugin z ní vytvoří galerii s obrázky a videi na libovolné stránce či příspěvku na webu. Ze všech složek a podsložek jsou navíc vytvořeny vnořené “podgalerie”. Plugin vzniknul primárně pro potřeby Junáka, oddílů a středisek, ale vyvíjíme ho tzv. Open-Source (otevřeně pro veřejnost) a nabízíme ho v oficiální databázi pluginů pro WordPress. V tuto chvíli (léto 2021) podle statistik WordPressu plugin běží na víc jak 4 000 webových stránek a z kontaktů s uživateli víme, že ho využívají jak oddíly a střediska v Junáku, tak i "náhodná veřejnost" - zvlášť oblíbený se zdá být u skautů z celého světa a profesionálních fotografů, prezentujících svoje fotky. -

-
- - wordpress - - - php - - - javascript - - - google - -
-`; diff --git a/packages/frontend/__tests__/pages/IssueDetail.test.tsx b/packages/frontend/tests/pages/IssueDetail.test.tsx similarity index 92% rename from packages/frontend/__tests__/pages/IssueDetail.test.tsx rename to packages/frontend/tests/pages/IssueDetail.test.tsx index f1aab5c14..c5ecd82f9 100644 --- a/packages/frontend/__tests__/pages/IssueDetail.test.tsx +++ b/packages/frontend/tests/pages/IssueDetail.test.tsx @@ -1,5 +1,6 @@ import { render } from "@testing-library/react"; import { MemoryRouter, Route, Routes } from "react-router-dom"; +import { describe, expect, test } from "vitest"; import { IssueDetail } from "../../src/pages/IssueDetail"; import { testData } from "../testData"; @@ -9,6 +10,8 @@ const issue = project.issues[0]; describe("IssueDetail page", () => { test("should render correctly", () => { + expect.assertions(1); + const { container } = render( { , ); + expect(container.firstChild).toMatchSnapshot(); }); test("should render correctly if there is no related issue", () => { + expect.assertions(1); + const { container } = render( @@ -37,6 +43,7 @@ describe("IssueDetail page", () => { , ); + expect(container.firstChild).toMatchSnapshot(); }); }); diff --git a/packages/frontend/__tests__/pages/IssuesList.test.tsx b/packages/frontend/tests/pages/IssuesList.test.tsx similarity index 85% rename from packages/frontend/__tests__/pages/IssuesList.test.tsx rename to packages/frontend/tests/pages/IssuesList.test.tsx index a0be23f67..3c14449e6 100644 --- a/packages/frontend/__tests__/pages/IssuesList.test.tsx +++ b/packages/frontend/tests/pages/IssuesList.test.tsx @@ -1,16 +1,20 @@ import { render } from "@testing-library/react"; import { MemoryRouter } from "react-router-dom"; +import { describe, expect, test } from "vitest"; import { IssuesList } from "../../src/pages/IssuesList"; import { testData } from "../testData"; describe("IssuesList page", () => { test("should render correctly", () => { + expect.assertions(1); + const { container } = render( , ); + expect(container.firstChild).toMatchSnapshot(); }); }); diff --git a/packages/frontend/__tests__/pages/ProjectDetail.test.tsx b/packages/frontend/tests/pages/ProjectDetail.test.tsx similarity index 91% rename from packages/frontend/__tests__/pages/ProjectDetail.test.tsx rename to packages/frontend/tests/pages/ProjectDetail.test.tsx index 54586c43a..c9fdc19e9 100644 --- a/packages/frontend/__tests__/pages/ProjectDetail.test.tsx +++ b/packages/frontend/tests/pages/ProjectDetail.test.tsx @@ -1,5 +1,6 @@ import { render } from "@testing-library/react"; import { MemoryRouter, Route, Routes } from "react-router-dom"; +import { describe, expect, test } from "vitest"; import { ProjectDetail } from "../../src/pages/ProjectDetail"; import { testData } from "../testData"; @@ -8,6 +9,8 @@ const project = testData.projects[0]; describe("ProjectDetail page", () => { test("should render correctly", () => { + expect.assertions(1); + const { container } = render( @@ -18,10 +21,13 @@ describe("ProjectDetail page", () => { , ); + expect(container.firstChild).toMatchSnapshot(); }); test("should render correctly if there is no related issue", () => { + expect.assertions(1); + const { container } = render( @@ -32,6 +38,7 @@ describe("ProjectDetail page", () => { , ); + expect(container.firstChild).toMatchSnapshot(); }); }); diff --git a/packages/frontend/__tests__/pages/ProjectsList.test.tsx b/packages/frontend/tests/pages/ProjectsList.test.tsx similarity index 85% rename from packages/frontend/__tests__/pages/ProjectsList.test.tsx rename to packages/frontend/tests/pages/ProjectsList.test.tsx index cd48d9b91..0f19d42d1 100644 --- a/packages/frontend/__tests__/pages/ProjectsList.test.tsx +++ b/packages/frontend/tests/pages/ProjectsList.test.tsx @@ -1,16 +1,20 @@ import { render } from "@testing-library/react"; import { MemoryRouter } from "react-router-dom"; +import { describe, expect, test } from "vitest"; import { ProjectsList } from "../../src/pages/ProjectsList"; import { testData } from "../testData"; describe("ProjectsList page", () => { test("should render correctly", () => { + expect.assertions(1); + const { container } = render( , ); + expect(container.firstChild).toMatchSnapshot(); }); }); diff --git a/packages/frontend/__tests__/pages/__snapshots__/IssueDetail.test.tsx.snap b/packages/frontend/tests/pages/__snapshots__/IssueDetail.test.tsx.snap similarity index 76% rename from packages/frontend/__tests__/pages/__snapshots__/IssueDetail.test.tsx.snap rename to packages/frontend/tests/pages/__snapshots__/IssueDetail.test.tsx.snap index 508234a12..95aa70a0c 100644 --- a/packages/frontend/__tests__/pages/__snapshots__/IssueDetail.test.tsx.snap +++ b/packages/frontend/tests/pages/__snapshots__/IssueDetail.test.tsx.snap @@ -1,247 +1,34 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`IssueDetail page should render correctly 1`] = ` -@media (min-width: 850px) { - .emotion-0 { - display: grid; - grid-template-columns: 1fr 300px; - -webkit-column-gap: 36px; - column-gap: 36px; - } -} - -.emotion-1 { - margin: 0 0 16px; - padding-bottom: 24px; - grid-column: 1/span 2; -} - -.emotion-2 { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #999; - font-size: 0.8em; -} - -.emotion-2 svg { - margin-right: 0.2em; -} - -.emotion-3 { - color: #294885; - margin: 0 0 16px; - font-family: themix; - font-size: 2em; -} - -.emotion-4 { - color: #999; - font-weight: normal; -} - -.emotion-5 { - margin-top: -16px; -} - -.emotion-6 { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -.emotion-7 { - max-width: 750px; -} - -.emotion-8 { - margin: 0 0 16px; - font-size: 18px; - margin: 0; -} - -.emotion-8 img { - max-width: 100%; -} - -.emotion-10 { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - display: inline-block; - font-size: 1.2rem; - background-color: #294885; - color: white; - margin-top: 0.2rem; - padding: 0.6rem 1.2rem; - border-radius: 10px; - box-shadow: 0 0 0 #999; - -webkit-transition: box-shadow 300ms; - transition: box-shadow 300ms; -} - -.emotion-11 { - margin: 0 0 16px; - padding-bottom: 24px; - max-width: 600px; - grid-column: 1/1; -} - -.emotion-12 { - color: white; - background-color: #294885; - margin-left: -10px; - margin-right: -10px; - padding: 20px; - border-radius: 10px; -} - -.emotion-12 * { - color: white; -} - -.emotion-12 *::selection { - background-color: white; - color: #294885; -} - -.emotion-14 { - color: #294885; - margin: 0 0 12px; - font-family: themix; -} - -.emotion-15 { - margin: 0 0 16px; -} - -.emotion-15 img { - max-width: 100%; -} - -.emotion-17 { - background-color: #894cc033; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-18 { - background-color: #6d52b833; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-19 { - background-color: #8b843b33; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-20 { - background-color: #d293ff33; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-21 { - margin: 0 0 16px; - padding-bottom: 24px; - max-width: 500px; - grid-column: 2/2; -} - -@media (min-width: 850px) { - .emotion-21 { - border: none; - } -} - -.emotion-24 a { - display: block; - font-size: 0.9em; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.emotion-50 { - margin: 0 0 16px; - padding-bottom: 24px; - max-width: 450px; - grid-column: 1/1; -} - -.emotion-52 { - margin: 12px 0 24px; -} - -.emotion-52 img { - max-width: 100%; -} +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +exports[`IssueDetail page > should render correctly 1`] = `
Poptávka:

Add hint to set videos to public   # 1

When editing and selecting a folder with videos, the editor could display a notice that setting videos to "Anyone can view" will speed them up. @@ -279,12 +66,12 @@ exports[`IssueDetail page should render correctly 1`] = `

Zaujala tě poptávka?
Další poptávky projektu:
`; -exports[`IssueDetail page should render correctly if there is no related issue 1`] = ` +exports[`IssueDetail page > should render correctly if there is no related issue 1`] = `

Poptávka skaut diff --git a/packages/frontend/tests/pages/__snapshots__/IssuesList.test.tsx.snap b/packages/frontend/tests/pages/__snapshots__/IssuesList.test.tsx.snap new file mode 100644 index 000000000..b9984d3e9 --- /dev/null +++ b/packages/frontend/tests/pages/__snapshots__/IssuesList.test.tsx.snap @@ -0,0 +1,59 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`IssuesList page > should render correctly 1`] = ` + +`; diff --git a/packages/frontend/__tests__/pages/__snapshots__/ProjectDetail.test.tsx.snap b/packages/frontend/tests/pages/__snapshots__/ProjectDetail.test.tsx.snap similarity index 78% rename from packages/frontend/__tests__/pages/__snapshots__/ProjectDetail.test.tsx.snap rename to packages/frontend/tests/pages/__snapshots__/ProjectDetail.test.tsx.snap index 9190332b2..c401ebc76 100644 --- a/packages/frontend/__tests__/pages/__snapshots__/ProjectDetail.test.tsx.snap +++ b/packages/frontend/tests/pages/__snapshots__/ProjectDetail.test.tsx.snap @@ -1,228 +1,52 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`ProjectDetail page should render correctly 1`] = ` -@media (min-width: 850px) { - .emotion-0 { - display: grid; - grid-template-columns: 1fr 300px; - -webkit-column-gap: 36px; - column-gap: 36px; - } -} - -.emotion-1 { - margin: 0 0 16px; - padding-bottom: 24px; - grid-column: 1/span 2; -} - -.emotion-2 { - color: white; - background-color: #294885; - margin-left: -10px; - margin-right: -10px; - padding: 20px; - border-radius: 10px; -} - -.emotion-2 * { - color: white; -} - -.emotion-2 *::selection { - background-color: white; - color: #294885; -} - -.emotion-3 { - color: #294885; - margin: 0 0 16px; - font-family: themix; - font-size: 2em; - color: white; -} - -.emotion-4 { - max-width: 750px; -} - -.emotion-5 { - margin: 0 0 16px; - font-size: 18px; - margin: 0; -} - -.emotion-5 img { - max-width: 100%; -} - -.emotion-7 { - background-color: #894cc033; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-8 { - background-color: #6d52b833; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-9 { - background-color: #8b843b33; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-10 { - background-color: #d293ff33; - color: white; - font-family: themix; - font-size: 0.8rem; - margin-right: 8px; - padding: 0.2rem 0.4rem; - border-radius: 4px; - border: 1px solid #ffffff55; -} - -.emotion-11 { - margin: 0 0 16px; - padding-bottom: 24px; - max-width: 500px; - grid-column: 2/2; -} - -.emotion-12 { - margin: 0 0 16px; -} - -.emotion-12 img { - max-width: 100%; -} - -.emotion-13 { - display: -webkit-box; - display: -webkit-flex; - display: -ms-flexbox; - display: flex; - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; - color: #999; - font-size: 0.8em; -} - -.emotion-13 svg { - margin-right: 0.2em; -} - -.emotion-14 a { - display: block; - font-size: 0.9em; - white-space: nowrap; - overflow: hidden; - text-overflow: ellipsis; -} - -.emotion-15 { - display: -webkit-inline-box; - display: -webkit-inline-flex; - display: -ms-inline-flexbox; - display: inline-flex; - -webkit-align-items: center; - -webkit-box-align: center; - -ms-flex-align: center; - align-items: center; -} - -.emotion-40 { - margin: 0 0 16px; - padding-bottom: 24px; - grid-column: 1/1; - grid-row: 2/2; -} - -.emotion-42 { - margin: 12px 0 24px; -} - -.emotion-42 img { - max-width: 100%; -} - -.emotion-43 { - color: #294885; - margin: 0 0 12px; - font-family: themix; -} - -.emotion-44 { - color: #999; - font-weight: normal; -} +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html +exports[`ProjectDetail page > should render correctly 1`] = `

WordPress plugin: Galerie obrázků a videí z Google Disku

Plugin pro WordPress, který ze složek s fotkami na Google Disku dělá galerie na webu.

Galerie obrázků a videí z Google Disku je plugin pro WordPress, který propojí web s Google Diskem. V pluginu se dá vybrat libovolná složku na Google Disku nebo ve Sdíleném disku a plugin z ní vytvoří galerii s obrázky a videi na libovolné stránce či příspěvku na webu. Ze všech složek a podsložek jsou navíc vytvořeny vnořené “podgalerie”. Plugin vzniknul primárně pro potřeby Junáka, oddílů a středisek, ale vyvíjíme ho tzv. Open-Source (otevřeně pro veřejnost) a nabízíme ho v oficiální databázi pluginů pro WordPress. V tuto chvíli (léto 2021) podle statistik WordPressu plugin běží na víc jak 4 000 webových stránek a z kontaktů s uživateli víme, že ho využívají jak oddíly a střediska v Junáku, tak i "náhodná veřejnost" - zvlášť oblíbený se zdá být u skautů z celého světa a profesionálních fotografů, prezentujících svoje fotky.

wordpress php javascript google @@ -230,13 +54,13 @@ exports[`ProjectDetail page should render correctly 1`] = `
Poptávky u projektu:
`; -exports[`ProjectDetail page should render correctly if there is no related issue 1`] = ` +exports[`ProjectDetail page > should render correctly if there is no related issue 1`] = `

Projekt owner diff --git a/packages/frontend/tests/pages/__snapshots__/ProjectsList.test.tsx.snap b/packages/frontend/tests/pages/__snapshots__/ProjectsList.test.tsx.snap new file mode 100644 index 000000000..579115b1f --- /dev/null +++ b/packages/frontend/tests/pages/__snapshots__/ProjectsList.test.tsx.snap @@ -0,0 +1,47 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`ProjectsList page > should render correctly 1`] = ` +
+

+ + WordPress plugin: Galerie obrázků a videí z Google Disku + +

+

+

+

+ Galerie obrázků a videí z Google Disku je plugin pro WordPress, který propojí web s Google Diskem. V pluginu se dá vybrat libovolná složku na Google Disku nebo ve Sdíleném disku a plugin z ní vytvoří galerii s obrázky a videi na libovolné stránce či příspěvku na webu. Ze všech složek a podsložek jsou navíc vytvořeny vnořené “podgalerie”. Plugin vzniknul primárně pro potřeby Junáka, oddílů a středisek, ale vyvíjíme ho tzv. Open-Source (otevřeně pro veřejnost) a nabízíme ho v oficiální databázi pluginů pro WordPress. V tuto chvíli (léto 2021) podle statistik WordPressu plugin běží na víc jak 4 000 webových stránek a z kontaktů s uživateli víme, že ho využívají jak oddíly a střediska v Junáku, tak i "náhodná veřejnost" - zvlášť oblíbený se zdá být u skautů z celého světa a profesionálních fotografů, prezentujících svoje fotky. +

+
+ + wordpress + + + php + + + javascript + + + google + +
+`;