1 Commits

Author SHA1 Message Date
Sebastian 4d96ceaad5 chore: implement js test suites
Build Test / test (pull_request) Successful in 1m4s
JS Unit Tests / test (pull_request) Successful in 55s
PHP Integration Tests / Integration Tests (pull_request) Successful in 2m13s
PHP Unit Tests / test (pull_request) Successful in 2m17s
Signed-off-by: Sebastian Krupinski <krupinski01@gmail.com>
2026-07-24 00:13:52 -04:00
5 changed files with 591 additions and 158 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
services: services:
mongo: mongo:
image: mongo:8 image: mongo:7
options: >- options: >-
--health-cmd "mongosh --quiet --eval \"db.adminCommand('ping')\"" --health-cmd "mongosh --quiet --eval \"db.adminCommand('ping')\""
--health-interval 5s --health-interval 5s
Generated
+7 -7
View File
@@ -589,16 +589,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "12.5.33", "version": "12.5.31",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "b98e028a26c5c5ba7e4a54be96ccf35f2914d184" "reference": "0608d157a284f15cc73b99a3327eff06b66a176d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b98e028a26c5c5ba7e4a54be96ccf35f2914d184", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/0608d157a284f15cc73b99a3327eff06b66a176d",
"reference": "b98e028a26c5c5ba7e4a54be96ccf35f2914d184", "reference": "0608d157a284f15cc73b99a3327eff06b66a176d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -667,7 +667,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.33" "source": "https://github.com/sebastianbergmann/phpunit/tree/12.5.31"
}, },
"funding": [ "funding": [
{ {
@@ -675,7 +675,7 @@
"type": "other" "type": "other"
} }
], ],
"time": "2026-07-28T13:58:09+00:00" "time": "2026-07-06T14:54:16+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@@ -1701,5 +1701,5 @@
"platform-overrides": { "platform-overrides": {
"php": "8.3" "php": "8.3"
}, },
"plugin-api-version": "2.9.0" "plugin-api-version": "2.6.0"
} }
+7 -7
View File
@@ -14,8 +14,8 @@ use KTXC\Http\Response\JsonResponse;
use KTXC\Http\Response\Response; use KTXC\Http\Response\Response;
use KTXC\Http\Response\StreamedNdJsonResponse; use KTXC\Http\Response\StreamedNdJsonResponse;
use KTXC\Http\Response\StreamedResponse; use KTXC\Http\Response\StreamedResponse;
use KTXC\Context\IdentityContextInterface; use KTXC\SessionIdentity;
use KTXC\Context\TenantContextInterface; use KTXC\SessionTenant;
use KTXF\Controller\ControllerAbstract; use KTXF\Controller\ControllerAbstract;
use KTXF\Json\JsonSerializable; use KTXF\Json\JsonSerializable;
use KTXF\Resource\Identifier\CollectionIdentifier; 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'; private const ERR_INVALID_DATA = 'Invalid parameter: data must be an array';
public function __construct( public function __construct(
private readonly TenantContextInterface $tenantContext, private readonly SessionTenant $tenantIdentity,
private readonly IdentityContextInterface $identityContext, private readonly SessionIdentity $userIdentity,
private Manager $manager, private Manager $manager,
private readonly LoggerInterface $logger private readonly LoggerInterface $logger
) {} ) {}
@@ -80,13 +80,13 @@ class DefaultController extends ControllerAbstract {
): Response { ): Response {
// authorize request // authorize request
$tenantId = $this->tenantContext->identifier(); $tenantId = $this->tenantIdentity->identifier();
$userId = $this->identityContext->identifier(); $userId = $this->userIdentity->identifier();
// acting-user override: only the reserved system context is permitted, // acting-user override: only the reserved system context is permitted,
// gated on the system mail management permission // gated on the system mail management permission
if ($user !== null && $user !== $userId) { if ($user !== null && $user !== $userId) {
if ($user !== ProviderBaseInterface::USER_SYSTEM || !$this->identityContext->hasPermission('mail_manager.system')) { if ($user !== ProviderBaseInterface::USER_SYSTEM || !$this->userIdentity->hasPermission('mail_manager.system')) {
return new JsonResponse([ return new JsonResponse([
'version' => $version, 'version' => $version,
'transaction' => $transaction, 'transaction' => $transaction,
+574 -141
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -18,9 +18,9 @@
"test:coverage": "vitest run --coverage --config tests/js/vitest.config.ts" "test:coverage": "vitest run --coverage --config tests/js/vitest.config.ts"
}, },
"dependencies": { "dependencies": {
"pinia": "^4.0.0", "pinia": "^3.0.0",
"vue": "^3.5.18", "vue": "^3.5.18",
"vue-router": "^5.2.0", "vue-router": "^5.0.0",
"vuetify": "^4.0.0" "vuetify": "^4.0.0"
}, },
"devDependencies": { "devDependencies": {