plum-e2e 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/.prettierrc +15 -15
  2. package/README.md +5 -5
  3. package/backend/_scaffold/pages/LoginPage.js +22 -22
  4. package/backend/_scaffold/step_definitions/LoginSteps.js +9 -9
  5. package/backend/_scaffold/utils/constants.js +3 -3
  6. package/backend/_scaffold/utils/hooks.js +65 -65
  7. package/backend/_scaffold/utils/utils.js +10 -10
  8. package/backend/app.js +37 -37
  9. package/backend/config/scripts/create-settings.js +60 -60
  10. package/backend/config/scripts/generate-report.js +135 -135
  11. package/backend/config/scripts/run-tests.js +37 -37
  12. package/backend/cucumber.json +6 -6
  13. package/backend/package.json +29 -29
  14. package/backend/playwright.config.js +97 -97
  15. package/backend/routes/cron.routes.js +127 -127
  16. package/backend/routes/reports.routes.js +42 -42
  17. package/backend/routes/schedules.routes.js +32 -32
  18. package/backend/routes/tests.routes.js +33 -33
  19. package/backend/server.js +39 -39
  20. package/backend/services/cronService.js +127 -127
  21. package/backend/services/envService.js +43 -43
  22. package/backend/services/reportService.js +50 -50
  23. package/backend/services/scheduleService.js +34 -34
  24. package/backend/services/testService.js +70 -70
  25. package/backend/websockets/socketHandler.js +46 -46
  26. package/bin/plum.js +198 -198
  27. package/docker-compose.yml +41 -41
  28. package/frontend/jsconfig.json +13 -13
  29. package/frontend/package.json +26 -26
  30. package/frontend/postcss.config.js +23 -23
  31. package/frontend/src/app.css +35 -35
  32. package/frontend/src/app.html +28 -28
  33. package/frontend/src/lib/index.js +18 -18
  34. package/frontend/src/routes/+layout.svelte +34 -34
  35. package/frontend/src/routes/+page.svelte +188 -188
  36. package/frontend/src/routes/components/Navigation.svelte +53 -53
  37. package/frontend/src/routes/reports/+page.svelte +160 -160
  38. package/frontend/src/routes/scheduled-tests/+page.svelte +363 -363
  39. package/frontend/svelte.config.js +30 -30
  40. package/frontend/tailwind.config.js +44 -44
  41. package/frontend/vite.config.js +23 -23
  42. package/license-config.json +37 -37
  43. package/package.json +32 -28
@@ -1,30 +1,30 @@
1
- /*
2
- * This file is part of Plum.
3
- *
4
- * Plum is free software: you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation, either version 3 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * Plum is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with Plum. If not, see https://www.gnu.org/licenses/.
16
- */
17
-
18
- import adapter from '@sveltejs/adapter-auto';
19
-
20
- /** @type {import('@sveltejs/kit').Config} */
21
- const config = {
22
- kit: {
23
- // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
24
- // If your environment is not supported, or you settled on a specific environment, switch out the adapter.
25
- // See https://svelte.dev/docs/kit/adapters for more information about adapters.
26
- adapter: adapter()
27
- }
28
- };
29
-
30
- export default config;
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import adapter from '@sveltejs/adapter-auto';
19
+
20
+ /** @type {import('@sveltejs/kit').Config} */
21
+ const config = {
22
+ kit: {
23
+ // adapter-auto only supports some environments, see https://svelte.dev/docs/kit/adapter-auto for a list.
24
+ // If your environment is not supported, or you settled on a specific environment, switch out the adapter.
25
+ // See https://svelte.dev/docs/kit/adapters for more information about adapters.
26
+ adapter: adapter()
27
+ }
28
+ };
29
+
30
+ export default config;
@@ -1,44 +1,44 @@
1
- /*
2
- * This file is part of Plum.
3
- *
4
- * Plum is free software: you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation, either version 3 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * Plum is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with Plum. If not, see https://www.gnu.org/licenses/.
16
- */
17
-
18
- /** @type {import('tailwindcss').Config} */
19
- export default {
20
- content: ['./src/**/*.{html,js,svelte,ts}'],
21
- theme: {
22
- extend: {
23
- animation: {
24
- 'rise-quick': 'rise 0.6s ease-out' // Quick rising animation
25
- },
26
- keyframes: {
27
- rise: {
28
- '0%': { transform: 'translateY(20px)', opacity: '0' }, // Start slightly below, invisible
29
- '100%': { transform: 'translateY(0)', opacity: '1' } // End in place, fully visible
30
- }
31
- }
32
- }
33
- },
34
- plugins: [require('daisyui')],
35
- daisyui: {
36
- themes: ['emerald', 'dark'], // false: only light + dark | true: all themes | array: specific themes like this ["light", "dark", "cupcake"]
37
- base: true, // applies background color and foreground color for root element by default
38
- styled: true, // include daisyUI colors and design decisions for all components
39
- utils: true, // adds responsive and modifier utility classes
40
- prefix: '', // prefix for daisyUI classnames (components, modifiers and responsive class names. Not colors)
41
- logs: true, // Shows info about daisyUI version and used config in the console when building your CSS
42
- themeRoot: ':root' // The element that receives theme color CSS variables
43
- }
44
- };
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ /** @type {import('tailwindcss').Config} */
19
+ export default {
20
+ content: ['./src/**/*.{html,js,svelte,ts}'],
21
+ theme: {
22
+ extend: {
23
+ animation: {
24
+ 'rise-quick': 'rise 0.6s ease-out' // Quick rising animation
25
+ },
26
+ keyframes: {
27
+ rise: {
28
+ '0%': { transform: 'translateY(20px)', opacity: '0' }, // Start slightly below, invisible
29
+ '100%': { transform: 'translateY(0)', opacity: '1' } // End in place, fully visible
30
+ }
31
+ }
32
+ }
33
+ },
34
+ plugins: [require('daisyui')],
35
+ daisyui: {
36
+ themes: ['emerald', 'dark'], // false: only light + dark | true: all themes | array: specific themes like this ["light", "dark", "cupcake"]
37
+ base: true, // applies background color and foreground color for root element by default
38
+ styled: true, // include daisyUI colors and design decisions for all components
39
+ utils: true, // adds responsive and modifier utility classes
40
+ prefix: '', // prefix for daisyUI classnames (components, modifiers and responsive class names. Not colors)
41
+ logs: true, // Shows info about daisyUI version and used config in the console when building your CSS
42
+ themeRoot: ':root' // The element that receives theme color CSS variables
43
+ }
44
+ };
@@ -1,23 +1,23 @@
1
- /*
2
- * This file is part of Plum.
3
- *
4
- * Plum is free software: you can redistribute it and/or modify
5
- * it under the terms of the GNU General Public License as published by
6
- * the Free Software Foundation, either version 3 of the License, or
7
- * (at your option) any later version.
8
- *
9
- * Plum is distributed in the hope that it will be useful,
10
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
- * GNU General Public License for more details.
13
- *
14
- * You should have received a copy of the GNU General Public License
15
- * along with Plum. If not, see https://www.gnu.org/licenses/.
16
- */
17
-
18
- import { sveltekit } from '@sveltejs/kit/vite';
19
- import { defineConfig } from 'vite';
20
-
21
- export default defineConfig({
22
- plugins: [sveltekit()]
23
- });
1
+ /*
2
+ * This file is part of Plum.
3
+ *
4
+ * Plum is free software: you can redistribute it and/or modify
5
+ * it under the terms of the GNU General Public License as published by
6
+ * the Free Software Foundation, either version 3 of the License, or
7
+ * (at your option) any later version.
8
+ *
9
+ * Plum is distributed in the hope that it will be useful,
10
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ * GNU General Public License for more details.
13
+ *
14
+ * You should have received a copy of the GNU General Public License
15
+ * along with Plum. If not, see https://www.gnu.org/licenses/.
16
+ */
17
+
18
+ import { sveltekit } from '@sveltejs/kit/vite';
19
+ import { defineConfig } from 'vite';
20
+
21
+ export default defineConfig({
22
+ plugins: [sveltekit()]
23
+ });
@@ -1,37 +1,37 @@
1
- {
2
- "license": "./resources/gpl-3.0-license.txt",
3
- "ignoreDefaultIgnores": false,
4
- "licenseFormats": {
5
- "js|ts": {
6
- "prepend": "/*",
7
- "append": " */\n",
8
- "eachLine": {
9
- "prepend": " * "
10
- }
11
- },
12
- "svelte": {
13
- "prepend": "<!--",
14
- "append": " -->\n",
15
- "eachLine": {
16
- "prepend": " * "
17
- }
18
- },
19
- "dotfile|^Dockerfile|yml|yaml|prettierignore|gitignore|env|example": {
20
- "prepend": "#",
21
- "append": "#\n",
22
- "eachLine": {
23
- "prepend": "# "
24
- }
25
- }
26
- },
27
- "trailingWhitespace": "TRIM",
28
- "ignore": [
29
- "**/backend/tests/**",
30
- "**/backend/_scaffold/**",
31
- "**/.prettierrc",
32
- "**/.husky",
33
- "**/*.md",
34
- "**/backend/config/settings.json",
35
- "**/backend/config/cronjobs.json"
36
- ]
37
- }
1
+ {
2
+ "license": "./resources/gpl-3.0-license.txt",
3
+ "ignoreDefaultIgnores": false,
4
+ "licenseFormats": {
5
+ "js|ts": {
6
+ "prepend": "/*",
7
+ "append": " */\n",
8
+ "eachLine": {
9
+ "prepend": " * "
10
+ }
11
+ },
12
+ "svelte": {
13
+ "prepend": "<!--",
14
+ "append": " -->\n",
15
+ "eachLine": {
16
+ "prepend": " * "
17
+ }
18
+ },
19
+ "dotfile|^Dockerfile|yml|yaml|prettierignore|gitignore|env|example": {
20
+ "prepend": "#",
21
+ "append": "#\n",
22
+ "eachLine": {
23
+ "prepend": "# "
24
+ }
25
+ }
26
+ },
27
+ "trailingWhitespace": "TRIM",
28
+ "ignore": [
29
+ "**/backend/tests/**",
30
+ "**/backend/_scaffold/**",
31
+ "**/.prettierrc",
32
+ "**/.husky",
33
+ "**/*.md",
34
+ "**/backend/config/settings.json",
35
+ "**/backend/config/cronjobs.json"
36
+ ]
37
+ }
package/package.json CHANGED
@@ -1,28 +1,32 @@
1
- {
2
- "name": "plum-e2e",
3
- "version": "1.0.1",
4
- "description": "A detached test automation environment that combines Playwright and Cucumber with a Svelte frontend and an Express backend. It allows users to trigger tests, monitor reports, and schedule test runs through an intuitive UI.",
5
- "main": "index.js",
6
- "scripts": {
7
- "init": "(npm install) && (cd backend && npm install && npm run create-env && node config/scripts/create-settings.js) && (cd ../frontend && npm install && echo 'Frontend install complete')",
8
- "format": "prettier --write .",
9
- "add-license": "npx license-check-and-add add -f license-config.json",
10
- "prepare": "husky"
11
- },
12
- "keywords": [],
13
- "bin": {
14
- "plum": "./bin/plum.js"
15
- },
16
- "author": "silverlunah",
17
- "license": "ISC",
18
- "devDependencies": {
19
- "husky": "^9.1.7",
20
- "license-check-and-add": "^4.0.5",
21
- "prettier": "^3.5.1",
22
- "prettier-plugin-svelte": "^3.3.3"
23
- },
24
- "dependencies": {
25
- "fs-extra": "^11.3.0"
26
- },
27
- "type": "module"
28
- }
1
+ {
2
+ "name": "plum-e2e",
3
+ "version": "1.0.3",
4
+ "repository": {
5
+ "type": "git",
6
+ "url": "https://github.com/silverlunah/plum.git"
7
+ },
8
+ "description": "A detached test automation environment that combines Playwright and Cucumber with a Svelte frontend and an Express backend. It allows users to trigger tests, monitor reports, and schedule test runs through an intuitive UI.",
9
+ "main": "index.js",
10
+ "scripts": {
11
+ "init": "(npm install) && (cd backend && npm install && npm run create-env && node config/scripts/create-settings.js) && (cd ../frontend && npm install && echo 'Frontend install complete')",
12
+ "format": "prettier --write .",
13
+ "add-license": "npx license-check-and-add add -f license-config.json",
14
+ "prepare": "husky"
15
+ },
16
+ "keywords": [],
17
+ "bin": {
18
+ "plum": "./bin/plum.js"
19
+ },
20
+ "author": "silverlunah",
21
+ "license": "ISC",
22
+ "devDependencies": {
23
+ "husky": "^9.1.7",
24
+ "license-check-and-add": "^4.0.5",
25
+ "prettier": "^3.5.1",
26
+ "prettier-plugin-svelte": "^3.3.3"
27
+ },
28
+ "dependencies": {
29
+ "fs-extra": "^11.3.0"
30
+ },
31
+ "type": "module"
32
+ }