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.
- package/.prettierrc +15 -15
- package/README.md +5 -5
- package/backend/_scaffold/pages/LoginPage.js +22 -22
- package/backend/_scaffold/step_definitions/LoginSteps.js +9 -9
- package/backend/_scaffold/utils/constants.js +3 -3
- package/backend/_scaffold/utils/hooks.js +65 -65
- package/backend/_scaffold/utils/utils.js +10 -10
- package/backend/app.js +37 -37
- package/backend/config/scripts/create-settings.js +60 -60
- package/backend/config/scripts/generate-report.js +135 -135
- package/backend/config/scripts/run-tests.js +37 -37
- package/backend/cucumber.json +6 -6
- package/backend/package.json +29 -29
- package/backend/playwright.config.js +97 -97
- package/backend/routes/cron.routes.js +127 -127
- package/backend/routes/reports.routes.js +42 -42
- package/backend/routes/schedules.routes.js +32 -32
- package/backend/routes/tests.routes.js +33 -33
- package/backend/server.js +39 -39
- package/backend/services/cronService.js +127 -127
- package/backend/services/envService.js +43 -43
- package/backend/services/reportService.js +50 -50
- package/backend/services/scheduleService.js +34 -34
- package/backend/services/testService.js +70 -70
- package/backend/websockets/socketHandler.js +46 -46
- package/bin/plum.js +198 -198
- package/docker-compose.yml +41 -41
- package/frontend/jsconfig.json +13 -13
- package/frontend/package.json +26 -26
- package/frontend/postcss.config.js +23 -23
- package/frontend/src/app.css +35 -35
- package/frontend/src/app.html +28 -28
- package/frontend/src/lib/index.js +18 -18
- package/frontend/src/routes/+layout.svelte +34 -34
- package/frontend/src/routes/+page.svelte +188 -188
- package/frontend/src/routes/components/Navigation.svelte +53 -53
- package/frontend/src/routes/reports/+page.svelte +160 -160
- package/frontend/src/routes/scheduled-tests/+page.svelte +363 -363
- package/frontend/svelte.config.js +30 -30
- package/frontend/tailwind.config.js +44 -44
- package/frontend/vite.config.js +23 -23
- package/license-config.json +37 -37
- 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
|
+
};
|
package/frontend/vite.config.js
CHANGED
|
@@ -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
|
+
});
|
package/license-config.json
CHANGED
|
@@ -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.
|
|
4
|
-
"
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
"
|
|
15
|
-
},
|
|
16
|
-
"
|
|
17
|
-
"
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"
|
|
26
|
-
|
|
27
|
-
|
|
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
|
+
}
|