From 913c8d40b9bb15fb5c81fe6b91cd8b54a15bc065 Mon Sep 17 00:00:00 2001 From: snicco-bot Date: Fri, 6 May 2022 12:09:14 +0000 Subject: [PATCH] chore(monorepo): release v1.1.1 --- composer.json | 110 +++++++++--------- src/Middleware/MiddlewareResolver.php | 4 + .../CachedMiddlewareResolverTest.php | 54 +++++++++ 3 files changed, 113 insertions(+), 55 deletions(-) diff --git a/composer.json b/composer.json index 497788d..63a4d91 100644 --- a/composer.json +++ b/composer.json @@ -18,15 +18,15 @@ "psr/http-message": "^1.0.0", "psr/http-server-handler": "^1.0.0", "psr/http-server-middleware": "^1.0.0", - "snicco/psr7-error-handler": "^1.1", - "snicco/str-arr": "^1.1", + "snicco/psr7-error-handler": "^1.1.1", + "snicco/str-arr": "^1.1.1", "webimpress/safe-writer": "^2.2", "webmozart/assert": "^1.10" }, "require-dev": { "phpunit/phpunit": "^9.5.13", "pimple/pimple": "^3.5", - "snicco/http-routing-testing": "^1.1" + "snicco/http-routing-testing": "^1.1.1" }, "suggest": { "nyholm/psr7": "To use as a fast PSR7 implementation." @@ -47,61 +47,61 @@ "sort-packages": true }, "conflict": { - "snicco/testable-clock": "<1.1.0", - "snicco/signed-url": "<1.1.0", - "snicco/templating": "<1.1.0", + "snicco/testable-clock": "<1.1.1", + "snicco/signed-url": "<1.1.1", + "snicco/templating": "<1.1.1", "snicco/psr7-error-handler": "<1.0.0", - "snicco/better-wpdb": "<1.1.0", - "snicco/better-wp-hooks": "<1.1.0", - "snicco/event-dispatcher": "<1.1.0", - "snicco/eloquent": "<1.1.0", - "snicco/better-wp-mail": "<1.1.0", - "snicco/better-wp-cache": "<1.1.0", - "snicco/session": "<1.1.0", - "snicco/better-wp-api": "<1.1.0", - "snicco/kernel": "<1.1.0", - "snicco/session-wp-bridge": "<1.1.0", - "snicco/session-psr16-bridge": "<1.1.0", - "snicco/blade-bridge": "<1.1.0", - "snicco/signed-url-psr16-bridge": "<1.1.0", - "snicco/illuminate-container-bridge": "<1.1.0", - "snicco/signed-url-psr15-bridge": "<1.1.0", - "snicco/pimple-bridge": "<1.1.0", - "snicco/no-robots-middleware": "<1.1.0", - "snicco/open-redirect-protection-middleware": "<1.1.0", + "snicco/better-wpdb": "<1.1.1", + "snicco/better-wp-hooks": "<1.1.1", + "snicco/event-dispatcher": "<1.1.1", + "snicco/eloquent": "<1.1.1", + "snicco/better-wp-mail": "<1.1.1", + "snicco/better-wp-cache": "<1.1.1", + "snicco/session": "<1.1.1", + "snicco/better-wp-api": "<1.1.1", + "snicco/kernel": "<1.1.1", + "snicco/session-wp-bridge": "<1.1.1", + "snicco/session-psr16-bridge": "<1.1.1", + "snicco/blade-bridge": "<1.1.1", + "snicco/signed-url-psr16-bridge": "<1.1.1", + "snicco/illuminate-container-bridge": "<1.1.1", + "snicco/signed-url-psr15-bridge": "<1.1.1", + "snicco/pimple-bridge": "<1.1.1", + "snicco/no-robots-middleware": "<1.1.1", + "snicco/open-redirect-protection-middleware": "<1.1.1", "snicco/wp-capapility-middleware": "<1.0.0", - "snicco/wp-nonce-middleware": "<1.1.0", - "snicco/payload-middleware": "<1.1.0", - "snicco/default-headers-middleware": "<1.1.0", - "snicco/wp-auth-only-middleware": "<1.1.0", - "snicco/content-negotiation-middleware": "<1.1.0", - "snicco/redirect-middleware": "<1.1.0", - "snicco/must-match-route-middleware": "<1.1.0", - "snicco/method-override-middleware": "<1.1.0", - "snicco/share-cookies-middleware": "<1.1.0", - "snicco/https-only-middleware": "<1.1.0", + "snicco/wp-nonce-middleware": "<1.1.1", + "snicco/payload-middleware": "<1.1.1", + "snicco/default-headers-middleware": "<1.1.1", + "snicco/wp-auth-only-middleware": "<1.1.1", + "snicco/content-negotiation-middleware": "<1.1.1", + "snicco/redirect-middleware": "<1.1.1", + "snicco/must-match-route-middleware": "<1.1.1", + "snicco/method-override-middleware": "<1.1.1", + "snicco/share-cookies-middleware": "<1.1.1", + "snicco/https-only-middleware": "<1.1.1", "snicco/guests-only-middleware": "<1.0.0", - "snicco/trailing-slash-middleware": "<1.1.0", - "snicco/testing-bundle": "<1.1.0", - "snicco/http-routing-bundle": "<1.1.0", - "snicco/debug-bundle": "<1.1.0", - "snicco/templating-bundle": "<1.1.0", - "snicco/better-wpdb-bundle": "<1.1.0", - "snicco/better-wp-hooks-bundle": "<1.1.0", - "snicco/blade-bundle": "<1.1.0", - "snicco/better-wp-mail-bundle": "<1.1.0", - "snicco/better-wp-cache-bundle": "<1.1.0", - "snicco/session-bundle": "<1.1.0", - "snicco/encryption-bundle": "<1.1.0", - "snicco/wp-guests-only-middleware": "<1.1.0", - "snicco/wp-capability-middleware": "<1.1.0", - "snicco/better-wp-mail-testing": "<1.1.0", - "snicco/session-testing": "<1.1.0", - "snicco/kernel-testing": "<1.1.0", - "snicco/signed-url-testing": "<1.1.0", - "snicco/http-routing-testing": "<1.1.0", - "snicco/event-dispatcher-testing": "<1.1.0", - "snicco/better-wp-cli": "<1.1.0" + "snicco/trailing-slash-middleware": "<1.1.1", + "snicco/testing-bundle": "<1.1.1", + "snicco/http-routing-bundle": "<1.1.1", + "snicco/debug-bundle": "<1.1.1", + "snicco/templating-bundle": "<1.1.1", + "snicco/better-wpdb-bundle": "<1.1.1", + "snicco/better-wp-hooks-bundle": "<1.1.1", + "snicco/blade-bundle": "<1.1.1", + "snicco/better-wp-mail-bundle": "<1.1.1", + "snicco/better-wp-cache-bundle": "<1.1.1", + "snicco/session-bundle": "<1.1.1", + "snicco/encryption-bundle": "<1.1.1", + "snicco/wp-guests-only-middleware": "<1.1.1", + "snicco/wp-capability-middleware": "<1.1.1", + "snicco/better-wp-mail-testing": "<1.1.1", + "snicco/session-testing": "<1.1.1", + "snicco/kernel-testing": "<1.1.1", + "snicco/signed-url-testing": "<1.1.1", + "snicco/http-routing-testing": "<1.1.1", + "snicco/event-dispatcher-testing": "<1.1.1", + "snicco/better-wp-cli": "<1.1.1" }, "license": "LGPL-3.0-only", "minimum-stability": "dev", diff --git a/src/Middleware/MiddlewareResolver.php b/src/Middleware/MiddlewareResolver.php index 7b938b1..55fc13b 100644 --- a/src/Middleware/MiddlewareResolver.php +++ b/src/Middleware/MiddlewareResolver.php @@ -219,6 +219,10 @@ public function createMiddlewareCache(Routes $routes, ContainerInterface $contai ]; foreach (array_keys($request_map) as $type) { + if (! $this->always_run_if_no_route_matches[$type]) { + continue; + } + foreach ($this->resolve([$type]) as $blueprint) { $request_map[$type][] = $blueprint->asArray(); } diff --git a/tests/Middleware/CachedMiddlewareResolverTest.php b/tests/Middleware/CachedMiddlewareResolverTest.php index 94aebc4..d51010f 100644 --- a/tests/Middleware/CachedMiddlewareResolverTest.php +++ b/tests/Middleware/CachedMiddlewareResolverTest.php @@ -197,6 +197,60 @@ public function test_create_middleware_cache(): void ], $cache['request_map']['frontend']); } + /** + * @test + */ + public function creating_the_middleware_cache_takes_settings_for_always_run_into_account(): void + { + $resolver = new MiddlewareResolver( + [RoutingConfigurator::FRONTEND_MIDDLEWARE], + [ + 'foo' => FooMiddleware::class, + 'bar' => BarMiddleware::class, + 'baz' => BazMiddleware::class, + ], + [ + 'frontend' => ['foo'], + 'admin' => ['bar'], + 'api' => ['baz'], + 'global' => ['foo', 'bar'], + ], + [BarMiddleware::class] + ); + + $pimple = new Container(); + $psr = new \Pimple\Psr11\Container($pimple); + + $cache = $resolver->createMiddlewareCache(new RouteCollection(), $psr); + + $request_map = $cache['request_map']; + + $this->assertTrue(isset($request_map['frontend']), 'Frontend middleware should be in request_map cache'); + $this->assertTrue(isset($request_map['api']), 'API middleware should have been in request_map cache'); + $this->assertTrue(isset($request_map['admin']), 'Admin middleware should have been in request_map cache'); + $this->assertTrue(isset($request_map['global']), 'Global middleware should have been in request_map cache'); + + $this->assertSame([ + [ + 'class' => FooMiddleware::class, + 'args' => [], + ], + ], $request_map['frontend']); + + $this->assertSame([], $request_map['api']); + $this->assertSame([], $request_map['admin']); + $this->assertSame([], $request_map['global']); + + $resolver = MiddlewareResolver::fromCache($cache['route_map'], $cache['request_map']); + + $this->assertEquals([ + new MiddlewareBlueprint(FooMiddleware::class, []), + ], $resolver->resolveForRequestWithoutRoute($this->frontendRequest())); + + $this->assertEquals([], $resolver->resolveForRequestWithoutRoute($this->adminRequest('/wp-admin'))); + $this->assertEquals([], $resolver->resolveForRequestWithoutRoute($this->apiRequest())); + } + /** * @test */