Jenkins-test

This commit is contained in:
ISA
2024-07-11 08:24:18 +02:00
parent 3bbbfeb872
commit 3ea4ce99b5
12 changed files with 4261 additions and 851 deletions

3
.babelrc Normal file
View File

@@ -0,0 +1,3 @@
{
"presets": ["@babel/preset-env", "@babel/preset-react"]
}

12
__mocks__/leaflet.js Normal file
View File

@@ -0,0 +1,12 @@
module.exports = {
map: () => ({
setView: jest.fn(),
addLayer: jest.fn(),
}),
tileLayer: () => ({
addTo: jest.fn(),
}),
marker: () => ({
addTo: jest.fn(),
}),
};

View File

@@ -1,8 +1,40 @@
// __tests__/MapComponent.test.js // __tests__/MapComponent.test.js
import { render, screen } from "@testing-library/react"; import React from "react";
import { render } from "@testing-library/react";
import { RecoilRoot } from "recoil";
import MapComponent from "../components/MapComponent"; import MapComponent from "../components/MapComponent";
test("renders map component", () => { // Mock Leaflet and its plugins
render(<MapComponent />); jest.mock("leaflet", () => {
expect(screen.getByText("TALAS.Map")).toBeInTheDocument(); const leaflet = jest.requireActual("leaflet");
return {
...leaflet,
map: () => ({
setView: jest.fn(),
addLayer: jest.fn(),
}),
tileLayer: () => ({
addTo: jest.fn(),
}),
marker: () => ({
addTo: jest.fn(),
}),
};
});
jest.mock("leaflet-contextmenu", () => ({}));
// Mock the fetch API
global.fetch = jest.fn(() =>
Promise.resolve({
json: () => Promise.resolve([]), // Adjust the mock data as needed
})
);
test("renders map component", () => {
render(
<RecoilRoot>
<MapComponent />
</RecoilRoot>
);
}); });

3
babel.config.js Normal file
View File

@@ -0,0 +1,3 @@
module.exports = {
presets: ["@babel/preset-env", "@babel/preset-react"],
};

View File

@@ -1,4 +0,0 @@
module.exports = {
testEnvironment: 'jsdom',
setupFilesAfterEnv: ['<rootDir>/jest.setup.js'],
};

13
jest.config.js Normal file
View File

@@ -0,0 +1,13 @@
module.exports = {
setupFilesAfterEnv: ["<rootDir>/setupTests.js"],
transform: {
"^.+\\.(js|jsx)$": "babel-jest",
},
transformIgnorePatterns: [
"/node_modules/(?!(@react-leaflet|react-leaflet|leaflet)/)",
],
testEnvironment: "jsdom",
moduleNameMapper: {
"\\.(css|less|scss|sass)$": "identity-obj-proxy",
},
};

4996
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -11,7 +11,7 @@
"mysql2": "^3.10.1", "mysql2": "^3.10.1",
"next": "^14.2.3", "next": "^14.2.3",
"overlapping-marker-spiderfier-leaflet": "^0.2.7", "overlapping-marker-spiderfier-leaflet": "^0.2.7",
"react": "^18.2.0", "react": "^18.3.1",
"react-dom": "^18.3.1", "react-dom": "^18.3.1",
"react-leaflet": "^4.2.1", "react-leaflet": "^4.2.1",
"react-toastify": "^10.0.5", "react-toastify": "^10.0.5",
@@ -25,6 +25,9 @@
"test": "jest" "test": "jest"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.24.7",
"@babel/preset-env": "^7.24.7",
"@babel/preset-react": "^7.24.7",
"@testing-library/jest-dom": "^6.4.6", "@testing-library/jest-dom": "^6.4.6",
"@testing-library/react": "^16.0.0", "@testing-library/react": "^16.0.0",
"@types/leaflet": "^1.9.12", "@types/leaflet": "^1.9.12",
@@ -32,8 +35,12 @@
"@types/react": "^18.3.1", "@types/react": "^18.3.1",
"@types/react-dom": "^18.3.0", "@types/react-dom": "^18.3.0",
"autoprefixer": "^10.4.19", "autoprefixer": "^10.4.19",
"babel-jest": "^29.7.0",
"identity-obj-proxy": "^3.0.0",
"jest": "^29.7.0", "jest": "^29.7.0",
"postcss": "^8.4.38", "jest-css-modules-transform": "^4.4.2",
"jest-environment-jsdom": "^29.7.0",
"postcss": "^8.4.39",
"prettier": "^3.2.5", "prettier": "^3.2.5",
"tailwindcss": "^3.4.3" "tailwindcss": "^3.4.3"
} }

View File

@@ -1,5 +1,6 @@
// Pfad: pages/_app.js // Pfad: pages/_app.js
import { RecoilRoot } from 'recoil'; import React from "react";
import { RecoilRoot } from "recoil";
import "../styles/global.css"; import "../styles/global.css";
function MyApp({ Component, pageProps }) { function MyApp({ Component, pageProps }) {

View File

@@ -1,8 +1,7 @@
// pages/index.js import React, { useEffect, useState } from "react";
import { useEffect, useState } from "react";
import dynamic from "next/dynamic"; import dynamic from "next/dynamic";
import { useRecoilState, useRecoilValue } from "recoil"; import { useRecoilState, useRecoilValue } from "recoil";
import { readPoiMarkersStore } from "../store/selectors/readPoiMarkersStore"; // Aktualisiert mit atom import { readPoiMarkersStore } from "../store/selectors/readPoiMarkersStore";
import { poiReadFromDbTriggerAtom } from "../store/atoms/poiReadFromDbTriggerAtom"; import { poiReadFromDbTriggerAtom } from "../store/atoms/poiReadFromDbTriggerAtom";
const MapComponentWithNoSSR = dynamic( const MapComponentWithNoSSR = dynamic(
@@ -24,14 +23,12 @@ export default function Home() {
} }
const data = await response.json(); const data = await response.json();
setLocations(data); setLocations(data);
//console.log("Geladene Daten in Home.js:", data);
} catch (error) { } catch (error) {
console.error(error.message); console.error(error.message);
} }
}; };
useEffect(() => { useEffect(() => {
// URL-Parameter abfragen
function getURLParameter(name) { function getURLParameter(name) {
const params = new URLSearchParams(window.location.search); const params = new URLSearchParams(window.location.search);
return params.get(name); return params.get(name);
@@ -39,10 +36,7 @@ export default function Home() {
setMParam(getURLParameter("m")); setMParam(getURLParameter("m"));
setUParam(getURLParameter("u")); setUParam(getURLParameter("u"));
// Daten beim Laden der Seite holen
loadData(); loadData();
//console.log("poiReadTrigger in Home.js:", poiReadTrigger);
}, [poiReadTrigger]); }, [poiReadTrigger]);
const handleAddLocation = async (name, type, lat, lng) => { const handleAddLocation = async (name, type, lat, lng) => {
@@ -56,8 +50,7 @@ export default function Home() {
throw new Error("Fehler beim Hinzufügen des Standorts"); throw new Error("Fehler beim Hinzufügen des Standorts");
} }
console.log("Standort erfolgreich hinzugefügt"); console.log("Standort erfolgreich hinzugefügt");
loadData(); // Aktualisiere die Daten nach dem Hinzufügen loadData();
console.log("poiReadTrigger in Home.js:", poiReadTrigger);
} catch (error) { } catch (error) {
console.error(error.message); console.error(error.message);
} }
@@ -72,13 +65,11 @@ export default function Home() {
) )
); );
}; };
//------------------------------------
// Daten beim Laden der Seite holen
useEffect(() => { useEffect(() => {
loadData(); loadData();
//console.log("poiReadTrigger in Home.js:", poiReadTrigger);
}, [poiReadTrigger]); }, [poiReadTrigger]);
//------------------------------------
return ( return (
<div> <div>
<MapComponentWithNoSSR <MapComponentWithNoSSR

2
setupTests.js Normal file
View File

@@ -0,0 +1,2 @@
// setupTests.js
import "@testing-library/jest-dom";

View File

@@ -1,7 +1,9 @@
/** @type {import('tailwindcss').Config} */ /** @type {import('tailwindcss').Config} */
module.exports = { module.exports = {
purge: ["./pages/**/*.{js,ts,jsx,tsx}", "./components/**/*.{js,ts,jsx,tsx}"], content: [
content: [], "./pages/**/*.{js,ts,jsx,tsx}",
"./components/**/*.{js,ts,jsx,tsx}",
],
theme: { theme: {
extend: { extend: {
zIndex: { zIndex: {