Browse Source

Update mailer log scope

- Fix the automatic query logger attached during test suite startup
- Update mailer scope to use cake. convention.
Mark Story 2 years ago
parent
commit
ba722d3c4c

+ 1 - 1
src/Mailer/Mailer.php

@@ -553,7 +553,7 @@ class Mailer implements EventListenerInterface
     {
         $config = [
             'level' => 'debug',
-            'scope' => 'email',
+            'scope' => ['cake.email', 'email'],
         ];
         if ($log !== true) {
             if (!is_array($log)) {

+ 1 - 1
src/TestSuite/Fixture/Extension/PHPUnitStartedSubscriber.php

@@ -41,7 +41,7 @@ class PHPUnitStartedSubscriber implements PHPUnitStarted
             Log::setConfig('queries', [
                 'className' => 'Console',
                 'stream' => 'php://stderr',
-                'scopes' => ['queriesLog'],
+                'scopes' => ['cake.database.queries'],
             ]);
         }
     }

+ 25 - 0
tests/TestCase/Mailer/MailerTest.php

@@ -1267,6 +1267,31 @@ class MailerTest extends TestCase
     }
 
     /**
+     * test mail logging to cake.email scope
+     */
+    public function testSendWithLogCakeScope(): void
+    {
+        Log::setConfig('email', [
+            'className' => 'Array',
+            'scopes' => ['cake.email'],
+        ]);
+
+        $this->mailer->setTransport('debug');
+        $this->mailer->setTo('me@cakephp.org');
+        $this->mailer->setFrom('cake@cakephp.org');
+        $this->mailer->setSubject('My title');
+        $this->mailer->setProfile(['log' => true]);
+        $text = 'Logging This';
+        $this->mailer->deliver($text);
+
+        $messages = Log::engine('email')->read();
+        $this->assertCount(1, $messages);
+        $this->assertStringContainsString($text, $messages[0]);
+        $this->assertStringContainsString('cake@cakephp.org', $messages[0]);
+        $this->assertStringContainsString('me@cakephp.org', $messages[0]);
+    }
+
+    /**
      * test that initial email instance config is restored after email is sent.
      */
     public function testDefaultProfileRestoration(): void