Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 8147fedd04 |
@@ -1,27 +0,0 @@
|
|||||||
name: Playwright Tests
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [ main, master ]
|
|
||||||
pull_request:
|
|
||||||
branches: [ main, master ]
|
|
||||||
jobs:
|
|
||||||
test:
|
|
||||||
timeout-minutes: 60
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
steps:
|
|
||||||
- uses: actions/checkout@v4
|
|
||||||
- uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: lts/*
|
|
||||||
- name: Install dependencies
|
|
||||||
run: npm ci
|
|
||||||
- name: Install Playwright Browsers
|
|
||||||
run: npx playwright install --with-deps
|
|
||||||
- name: Run Playwright tests
|
|
||||||
run: npx playwright test
|
|
||||||
- uses: actions/upload-artifact@v4
|
|
||||||
if: ${{ !cancelled() }}
|
|
||||||
with:
|
|
||||||
name: playwright-report
|
|
||||||
path: playwright-report/
|
|
||||||
retention-days: 30
|
|
||||||
@@ -39,11 +39,3 @@ docker-compose.local.yaml
|
|||||||
docker-compose.override.yaml
|
docker-compose.override.yaml
|
||||||
.env.local
|
.env.local
|
||||||
.env.docker
|
.env.docker
|
||||||
|
|
||||||
# Playwright
|
|
||||||
node_modules/
|
|
||||||
/test-results/
|
|
||||||
/playwright-report/
|
|
||||||
/blob-report/
|
|
||||||
/playwright/.cache/
|
|
||||||
/playwright/.auth/
|
|
||||||
|
|||||||
@@ -45,10 +45,6 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": [
|
|
||||||
"Composer\\Config::disableProcessTimeout",
|
|
||||||
"npx concurrently -c \"#93c5fd,#c4b5fd,#fdba74\" \"php artisan serve --no-reload --port=8090\" \"php artisan queue:listen --tries=1\" \"npm run dev\" --names='server,queue,vite'"
|
|
||||||
],
|
|
||||||
"post-autoload-dump": [
|
"post-autoload-dump": [
|
||||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||||
"@php artisan package:discover --ansi"
|
"@php artisan package:discover --ansi"
|
||||||
|
|||||||
@@ -1,19 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
import { test, expect } from '@playwright/test';
|
|
||||||
|
|
||||||
test('has title', async ({ page }) => {
|
|
||||||
await page.goto('https://playwright.dev/');
|
|
||||||
|
|
||||||
// Expect a title "to contain" a substring.
|
|
||||||
await expect(page).toHaveTitle(/Playwright/);
|
|
||||||
});
|
|
||||||
|
|
||||||
test('get started link', async ({ page }) => {
|
|
||||||
await page.goto('https://playwright.dev/');
|
|
||||||
|
|
||||||
// Click the get started link.
|
|
||||||
await page.getByRole('link', { name: 'Get started' }).click();
|
|
||||||
|
|
||||||
// Expects page to have a heading with the name of Installation.
|
|
||||||
await expect(page.getByRole('heading', { name: 'Installation' })).toBeVisible();
|
|
||||||
});
|
|
||||||
Generated
+6056
-6102
File diff suppressed because it is too large
Load Diff
+66
-67
@@ -1,69 +1,68 @@
|
|||||||
{
|
{
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vite",
|
"dev": "vite",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"typecheck": "vue-tsc --noEmit -p tsconfig.json"
|
"typecheck": "vue-tsc --noEmit -p tsconfig.json"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@inertiajs/vue3": "2.0",
|
"@inertiajs/vue3": "2.0",
|
||||||
"@mdi/js": "^7.4.47",
|
"@mdi/js": "^7.4.47",
|
||||||
"@playwright/test": "^1.59.1",
|
"@tailwindcss/forms": "^0.5.10",
|
||||||
"@tailwindcss/forms": "^0.5.10",
|
"@tailwindcss/postcss": "^4.1.18",
|
||||||
"@tailwindcss/postcss": "^4.1.18",
|
"@tailwindcss/typography": "^0.5.19",
|
||||||
"@tailwindcss/typography": "^0.5.19",
|
"@types/node": "^24.10.3",
|
||||||
"@types/node": "^24.10.3",
|
"@vitejs/plugin-vue": "^6.0.2",
|
||||||
"@vitejs/plugin-vue": "^6.0.2",
|
"autoprefixer": "^10.4.22",
|
||||||
"autoprefixer": "^10.4.22",
|
"axios": "^1.13.2",
|
||||||
"axios": "^1.13.2",
|
"laravel-vite-plugin": "^2.0.1",
|
||||||
"laravel-vite-plugin": "^2.0.1",
|
"postcss": "^8.5.6",
|
||||||
"postcss": "^8.5.6",
|
"tailwindcss": "^4.1.16",
|
||||||
"tailwindcss": "^4.1.16",
|
"typescript": "^5.9.3",
|
||||||
"typescript": "^5.9.3",
|
"vite": "^7.2.7",
|
||||||
"vite": "^7.2.7",
|
"vue": "^3.3.13",
|
||||||
"vue": "^3.3.13",
|
"vue-tsc": "^3.1.8"
|
||||||
"vue-tsc": "^3.1.8"
|
},
|
||||||
},
|
"dependencies": {
|
||||||
"dependencies": {
|
"@fortawesome/fontawesome-svg-core": "^6.7.2",
|
||||||
"@fortawesome/fontawesome-svg-core": "^6.7.2",
|
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
||||||
"@fortawesome/free-brands-svg-icons": "^6.7.2",
|
"@fortawesome/free-regular-svg-icons": "^6.7.2",
|
||||||
"@fortawesome/free-regular-svg-icons": "^6.7.2",
|
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
||||||
"@fortawesome/free-solid-svg-icons": "^6.7.2",
|
"@fortawesome/vue-fontawesome": "^3.1.2",
|
||||||
"@fortawesome/vue-fontawesome": "^3.1.2",
|
"@guolao/vue-monaco-editor": "^1.6.0",
|
||||||
"@guolao/vue-monaco-editor": "^1.6.0",
|
"@headlessui/vue": "^1.7.23",
|
||||||
"@headlessui/vue": "^1.7.23",
|
"@heroicons/vue": "^2.2.0",
|
||||||
"@heroicons/vue": "^2.2.0",
|
"@internationalized/date": "^3.10.0",
|
||||||
"@internationalized/date": "^3.10.0",
|
"@tanstack/vue-table": "^8.21.3",
|
||||||
"@tanstack/vue-table": "^8.21.3",
|
"@unovis/ts": "^1.6.2",
|
||||||
"@unovis/ts": "^1.6.2",
|
"@unovis/vue": "^1.6.2",
|
||||||
"@unovis/vue": "^1.6.2",
|
"@vee-validate/zod": "^4.15.1",
|
||||||
"@vee-validate/zod": "^4.15.1",
|
"@vuepic/vue-datepicker": "^11.0.3",
|
||||||
"@vuepic/vue-datepicker": "^11.0.3",
|
"@vueuse/core": "^14.1.0",
|
||||||
"@vueuse/core": "^14.1.0",
|
"apexcharts": "^4.7.0",
|
||||||
"apexcharts": "^4.7.0",
|
"class-variance-authority": "^0.7.1",
|
||||||
"class-variance-authority": "^0.7.1",
|
"clean": "^4.0.2",
|
||||||
"clean": "^4.0.2",
|
"clsx": "^2.1.1",
|
||||||
"clsx": "^2.1.1",
|
"date-fns": "^4.1.0",
|
||||||
"date-fns": "^4.1.0",
|
"lodash": "^4.17.21",
|
||||||
"lodash": "^4.17.21",
|
"lucide-vue-next": "^0.552.0",
|
||||||
"lucide-vue-next": "^0.552.0",
|
"material-design-icons-iconfont": "^6.7.0",
|
||||||
"material-design-icons-iconfont": "^6.7.0",
|
"monaco-editor": "^0.55.1",
|
||||||
"monaco-editor": "^0.55.1",
|
"preline": "^2.7.0",
|
||||||
"preline": "^2.7.0",
|
"quill": "^1.3.7",
|
||||||
"quill": "^1.3.7",
|
"reka-ui": "^2.7.0",
|
||||||
"reka-ui": "^2.7.0",
|
"tailwind-merge": "^3.4.0",
|
||||||
"tailwind-merge": "^3.4.0",
|
"tailwindcss-animate": "^1.0.7",
|
||||||
"tailwindcss-animate": "^1.0.7",
|
"tailwindcss-inner-border": "^0.2.0",
|
||||||
"tailwindcss-inner-border": "^0.2.0",
|
"v-calendar": "^3.1.2",
|
||||||
"v-calendar": "^3.1.2",
|
"vee-validate": "^4.15.1",
|
||||||
"vee-validate": "^4.15.1",
|
"vue-currency-input": "^3.2.1",
|
||||||
"vue-currency-input": "^3.2.1",
|
"vue-multiselect": "^3.4.0",
|
||||||
"vue-multiselect": "^3.4.0",
|
"vue-search-input": "^1.1.19",
|
||||||
"vue-search-input": "^1.1.19",
|
"vue-sonner": "^2.0.9",
|
||||||
"vue-sonner": "^2.0.9",
|
"vue3-apexcharts": "^1.10.0",
|
||||||
"vue3-apexcharts": "^1.10.0",
|
"vuedraggable": "^4.1.0",
|
||||||
"vuedraggable": "^4.1.0",
|
"zod": "^3.25.76"
|
||||||
"zod": "^3.25.76"
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,81 +0,0 @@
|
|||||||
// @ts-check
|
|
||||||
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 */
|
|
||||||
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 */
|
|
||||||
trace: 'on-first-retry',
|
|
||||||
},
|
|
||||||
|
|
||||||
/* Configure projects for major browsers */
|
|
||||||
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,
|
|
||||||
// },
|
|
||||||
});
|
|
||||||
|
|
||||||
@@ -84,8 +84,8 @@ const summaryText = computed(() => {
|
|||||||
const found = props.items.find((i) => String(i.value) === String(v));
|
const found = props.items.find((i) => String(i.value) === String(v));
|
||||||
return found?.label || v;
|
return found?.label || v;
|
||||||
});
|
});
|
||||||
if (labels.length <= 3) return labels.join(', ');
|
if (labels.length <= 3) return labels.join(", ");
|
||||||
const firstThree = labels.slice(0, 3).join(', ');
|
const firstThree = labels.slice(0, 3).join(", ");
|
||||||
const remaining = labels.length - 3;
|
const remaining = labels.length - 3;
|
||||||
return `${firstThree}, … +${remaining}`; // show ellipsis and remaining count
|
return `${firstThree}, … +${remaining}`; // show ellipsis and remaining count
|
||||||
});
|
});
|
||||||
@@ -154,7 +154,7 @@ const summaryText = computed(() => {
|
|||||||
:variant="chipVariant"
|
:variant="chipVariant"
|
||||||
class="flex items-center gap-1"
|
class="flex items-center gap-1"
|
||||||
>
|
>
|
||||||
<span class="truncate max-w-[140px]">
|
<span class="truncate max-w-35">
|
||||||
{{ items.find((i) => String(i.value) === String(val))?.label || val }}
|
{{ items.find((i) => String(i.value) === String(val))?.label || val }}
|
||||||
</span>
|
</span>
|
||||||
<button
|
<button
|
||||||
|
|||||||
@@ -54,9 +54,7 @@ const form = useInertiaForm({
|
|||||||
props.actions[0].decisions.length > 0
|
props.actions[0].decisions.length > 0
|
||||||
? props.actions[0].decisions[0].id
|
? props.actions[0].decisions[0].id
|
||||||
: null,
|
: null,
|
||||||
contract_uuids: props.contractUuid ? [props.contractUuid] : (props.contracts && Array.isArray(props.contracts)
|
contract_uuids: props.contractUuid ? [props.contractUuid] : [],
|
||||||
? props.contracts.map((c) => c.uuid)
|
|
||||||
: []),
|
|
||||||
send_auto_mail: true,
|
send_auto_mail: true,
|
||||||
attach_documents: false,
|
attach_documents: false,
|
||||||
attachment_document_ids: [],
|
attachment_document_ids: [],
|
||||||
@@ -106,9 +104,7 @@ watch(
|
|||||||
() => props.show,
|
() => props.show,
|
||||||
(visible) => {
|
(visible) => {
|
||||||
if (visible) {
|
if (visible) {
|
||||||
form.contract_uuids = props.contractUuid ? [props.contractUuid] : (props.contracts && Array.isArray(props.contracts)
|
form.contract_uuids = props.contractUuid ? [props.contractUuid] : [];
|
||||||
? props.contracts.map((c) => c.uuid)
|
|
||||||
: []);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ const destroyAction = () => {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div class="space-y-1.5">
|
||||||
<InputLabel for="segmentEdit">Segment</InputLabel>
|
<InputLabel for="segmentEdit">Segment</InputLabel>
|
||||||
<AppCombobox
|
<AppCombobox
|
||||||
id="segmentEdit"
|
id="segmentEdit"
|
||||||
@@ -323,7 +323,7 @@ const destroyAction = () => {
|
|||||||
v-model="form.decisions"
|
v-model="form.decisions"
|
||||||
:items="selectOptions"
|
:items="selectOptions"
|
||||||
placeholder="Dodaj odločitev"
|
placeholder="Dodaj odločitev"
|
||||||
content-class="p-0 w-full"
|
chip-variant="secondary"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -373,7 +373,7 @@ const destroyAction = () => {
|
|||||||
v-model="createForm.decisions"
|
v-model="createForm.decisions"
|
||||||
:items="selectOptions"
|
:items="selectOptions"
|
||||||
placeholder="Dodaj odločitev"
|
placeholder="Dodaj odločitev"
|
||||||
content-class="p-0 w-full"
|
chip-variant="secondary"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user