28 Commits

Author SHA1 Message Date
Sebastian 402a347961 chore(deps): update dependency jsdom to v30
Build Test / test (pull_request) Successful in 40s
JS Unit Tests / test (pull_request) Successful in 31s
PHP Integration Tests / Integration Tests (pull_request) Failing after 1m5s
PHP Unit Tests / test (pull_request) Successful in 1m44s
2026-07-28 03:04:25 +00:00
Sebastian 0d5b13c6d2 refactor: migrate to scoped execution contexts
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-07-27 00:52:29 -04:00
Sebastian 2521e9bc9d Merge pull request 'chore(deps): update dependency @vitejs/plugin-vue to v6.0.8' (#65) from renovate/vitejs-plugin-vue-6.x-lockfile into main
Reviewed-on: #65
2026-07-25 23:53:08 +00:00
Sebastian 282c82b2c9 Merge pull request 'chore(deps): update dependency vite to v8.1.5' (#66) from renovate/vite-8.x-lockfile into main
Reviewed-on: #66
2026-07-25 23:53:01 +00:00
Sebastian f413dc7576 chore(deps): update dependency vite to v8.1.5
Build Test / test (pull_request) Successful in 58s
JS Unit Tests / test (pull_request) Successful in 58s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m38s
PHP Unit Tests / test (pull_request) Successful in 1m35s
2026-07-25 03:03:48 +00:00
Sebastian cffec87011 chore(deps): update dependency @vitejs/plugin-vue to v6.0.8
Build Test / test (pull_request) Successful in 48s
JS Unit Tests / test (pull_request) Successful in 53s
PHP Unit Tests / test (pull_request) Successful in 1m43s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m49s
2026-07-25 03:03:45 +00:00
Sebastian bdb09ceb96 Merge pull request 'chore: implement js test suites' (#64) from chore/js-test-suites into main
Reviewed-on: #64
2026-07-24 04:46:40 +00:00
Sebastian 0780f0b7d9 fix: update vue-router to 5.2.0 for pinia 4 peer dep support
Build Test / test (pull_request) Successful in 45s
JS Unit Tests / test (pull_request) Successful in 46s
PHP Unit Tests / test (pull_request) Successful in 1m14s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m28s
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-07-24 00:42:42 -04:00
Sebastian 2cd5cbca12 chore: implement js test suites
JS Unit Tests / test (pull_request) Failing after 39s
Build Test / test (pull_request) Failing after 42s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m13s
PHP Unit Tests / test (pull_request) Successful in 1m42s
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-07-24 00:32:42 -04:00
Sebastian 2b8e8598fe Merge pull request 'fix(deps): update dependency pinia to v4' (#62) from renovate/pinia-4.x into main
Reviewed-on: #62
2026-07-24 03:29:00 +00:00
Sebastian a30837a130 Merge pull request 'chore(deps): update mongo docker tag to v8' (#63) from renovate/mongo-8.x into main
Reviewed-on: #63
2026-07-24 03:28:51 +00:00
Sebastian 0a43bb8539 fix(deps): update dependency pinia to v4
JS Unit Tests / test (pull_request) Failing after 36s
Build Test / test (pull_request) Successful in 41s
PHP Integration Tests / Integration Tests (pull_request) Successful in 51s
PHP Unit Tests / test (pull_request) Successful in 54s
2026-07-24 03:24:21 +00:00
Sebastian c84924a5a1 chore(deps): update mongo docker tag to v8
Build Test / test (pull_request) Failing after 44s
JS Unit Tests / test (pull_request) Failing after 42s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m24s
PHP Unit Tests / test (pull_request) Successful in 1m40s
2026-07-24 03:24:18 +00:00
Sebastian 4d7844e90a Merge pull request 'chore(deps): update dependency vuetify to v4.1.6' (#55) from renovate/vuetify-4.x-lockfile into main
Reviewed-on: #55
2026-07-24 03:14:21 +00:00
Sebastian e08f37b2cc Merge pull request 'chore(deps): update dependency @vitejs/plugin-vue to v6.0.8' (#57) from renovate/vitejs-plugin-vue-6.x-lockfile into main
Reviewed-on: #57
2026-07-24 03:14:12 +00:00
Sebastian e8495800e6 Merge pull request 'chore(deps): update dependency vite to v8.1.5' (#58) from renovate/vite-8.x-lockfile into main
Reviewed-on: #58
2026-07-24 03:14:05 +00:00
Sebastian cbcb6d1dcb Merge pull request 'chore(deps): update dependency vue to v3.5.40' (#59) from renovate/vue-monorepo into main
Reviewed-on: #59
2026-07-24 03:12:42 +00:00
Sebastian 3d40bfdf76 Merge pull request 'chore(deps): update dependency vue-tsc to v3.3.8' (#60) from renovate/vue-language-tools-monorepo into main
Reviewed-on: #60
2026-07-24 03:12:35 +00:00
Sebastian a3cfb4f40d Merge pull request 'chore(deps): update dependency typescript to v7' (#54) from renovate/typescript-7.x into main
Reviewed-on: #54
2026-07-24 03:12:19 +00:00
Sebastian 27ddd22a2d Merge pull request 'chore(deps): update vitest monorepo to v4.1.10' (#52) from renovate/vitest-monorepo into main
Reviewed-on: #52
2026-07-24 03:12:04 +00:00
Sebastian 8440a3daec Merge pull request 'chore(deps): update dependency vue-router to v5.2.0' (#61) from renovate/vue-router-5.x-lockfile into main
Reviewed-on: #61
2026-07-24 03:11:56 +00:00
Sebastian 0b71c51dd5 chore(deps): update dependency vue-router to v5.2.0
JS Unit Tests / test (pull_request) Failing after 43s
Build Test / test (pull_request) Successful in 44s
PHP Unit Tests / test (pull_request) Successful in 1m29s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m51s
2026-07-24 02:55:33 +00:00
Sebastian 6094dd4cd1 chore(deps): update vitest monorepo to v4.1.10
Build Test / test (pull_request) Successful in 53s
JS Unit Tests / test (pull_request) Failing after 54s
PHP Unit Tests / test (pull_request) Successful in 1m36s
PHP Integration Tests / Integration Tests (pull_request) Successful in 2m32s
2026-07-24 02:55:28 +00:00
Sebastian ee74991175 chore(deps): update dependency vuetify to v4.1.6
Build Test / test (pull_request) Successful in 47s
JS Unit Tests / test (pull_request) Failing after 38s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m36s
PHP Unit Tests / test (pull_request) Successful in 1m57s
2026-07-24 02:55:23 +00:00
Sebastian f7596976da chore(deps): update dependency vue-tsc to v3.3.8
Build Test / test (pull_request) Successful in 42s
JS Unit Tests / test (pull_request) Failing after 42s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m57s
PHP Unit Tests / test (pull_request) Successful in 2m6s
2026-07-24 02:55:20 +00:00
Sebastian b0f388161a chore(deps): update dependency vue to v3.5.40
Build Test / test (pull_request) Failing after 43s
JS Unit Tests / test (pull_request) Failing after 44s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m37s
PHP Unit Tests / test (pull_request) Successful in 1m35s
2026-07-24 02:55:17 +00:00
Sebastian df1ed31ef9 chore(deps): update dependency vite to v8.1.5
Build Test / test (pull_request) Successful in 51s
JS Unit Tests / test (pull_request) Failing after 54s
PHP Integration Tests / Integration Tests (pull_request) Successful in 1m27s
PHP Unit Tests / test (pull_request) Successful in 2m5s
2026-07-24 02:55:14 +00:00
Sebastian 0b8c50b93f chore(deps): update dependency @vitejs/plugin-vue to v6.0.8
JS Unit Tests / test (pull_request) Failing after 57s
Build Test / test (pull_request) Successful in 58s
PHP Integration Tests / Integration Tests (pull_request) Successful in 2m4s
PHP Unit Tests / test (pull_request) Successful in 2m24s
2026-07-24 02:55:12 +00:00
6 changed files with 1243 additions and 768 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest
services:
mongo:
image: mongo:7
image: mongo:8
options: >-
--health-cmd "mongosh --quiet --eval \"db.adminCommand('ping')\""
--health-interval 5s
+7 -7
View File
@@ -14,8 +14,8 @@ use KTXC\Http\Response\JsonResponse;
use KTXC\Http\Response\Response;
use KTXC\Http\Response\StreamedNdJsonResponse;
use KTXC\Http\Response\StreamedResponse;
use KTXC\SessionIdentity;
use KTXC\SessionTenant;
use KTXC\Context\IdentityContextInterface;
use KTXC\Context\TenantContextInterface;
use KTXF\Controller\ControllerAbstract;
use KTXF\Json\JsonSerializable;
use KTXF\Resource\Identifier\CollectionIdentifier;
@@ -51,8 +51,8 @@ class DefaultController extends ControllerAbstract {
private const ERR_INVALID_DATA = 'Invalid parameter: data must be an array';
public function __construct(
private readonly SessionTenant $tenantIdentity,
private readonly SessionIdentity $userIdentity,
private readonly TenantContextInterface $tenantContext,
private readonly IdentityContextInterface $identityContext,
private Manager $manager,
private readonly LoggerInterface $logger
) {}
@@ -80,13 +80,13 @@ class DefaultController extends ControllerAbstract {
): Response {
// authorize request
$tenantId = $this->tenantIdentity->identifier();
$userId = $this->userIdentity->identifier();
$tenantId = $this->tenantContext->identifier();
$userId = $this->identityContext->identifier();
// acting-user override: only the reserved system context is permitted,
// gated on the system mail management permission
if ($user !== null && $user !== $userId) {
if ($user !== ProviderBaseInterface::USER_SYSTEM || !$this->userIdentity->hasPermission('mail_manager.system')) {
if ($user !== ProviderBaseInterface::USER_SYSTEM || !$this->identityContext->hasPermission('mail_manager.system')) {
return new JsonResponse([
'version' => $version,
'transaction' => $transaction,
+1166 -757
View File
File diff suppressed because it is too large Load Diff
+6 -3
View File
@@ -18,18 +18,21 @@
"test:coverage": "vitest run --coverage --config tests/js/vitest.config.ts"
},
"dependencies": {
"pinia": "^3.0.0",
"pinia": "^4.0.0",
"vue": "^3.5.18",
"vue-router": "^5.0.0",
"vue-router": "^5.2.0",
"vuetify": "^4.0.0"
},
"devDependencies": {
"@vitejs/plugin-vue": "^6.0.1",
"@vitest/coverage-v8": "^4.0.18",
"@vitest/ui": "^4.0.18",
"@vue/test-utils": "^2.4.10",
"@vue/tsconfig": "^0.9.0",
"typescript": "~7.0.0",
"jsdom": "^30.0.0",
"typescript": "~6.0.0",
"vite": "^8.0.0",
"vitest": "^4.0.18",
"vue-tsc": "^3.0.5"
}
}
+30
View File
@@ -0,0 +1,30 @@
import { describe, it, expect } from 'vitest'
describe('Basic Tests', () => {
it('should perform basic assertion', () => {
expect(true).toBe(true)
})
it('should test array operations', () => {
const array = ['foo', 'bar', 'baz']
expect(array).toHaveLength(3)
expect(array).toContain('bar')
expect(array[0]).toBe('foo')
})
it('should test string operations', () => {
const string = 'Hello, World!'
expect(string).toContain('World')
expect(string.length).toBe(13)
})
it('should test object operations', () => {
const obj = { foo: 'bar', count: 42 }
expect(obj).toHaveProperty('foo')
expect(obj.foo).toBe('bar')
expect(obj.count).toBeGreaterThan(40)
})
})
+33
View File
@@ -0,0 +1,33 @@
import { fileURLToPath } from 'node:url'
import { defineConfig, configDefaults } from 'vitest/config'
import vue from '@vitejs/plugin-vue'
import path from 'path'
const __filename = fileURLToPath(import.meta.url)
const __dirname = path.dirname(__filename)
export default defineConfig({
plugins: [vue()],
resolve: {
alias: {
'@': path.resolve(__dirname, '../../src'),
'@KTXC': path.resolve(__dirname, '../../../../core/src'),
},
},
test: {
environment: 'jsdom',
exclude: [...configDefaults.exclude, 'e2e/**'],
root: fileURLToPath(new URL('../../', import.meta.url)),
coverage: {
provider: 'v8',
reporter: ['text', 'json', 'html'],
exclude: [
'node_modules/',
'tests/',
'**/*.d.ts',
'**/*.config.*',
'**/dist/**',
],
},
},
})