Skip to content

Commit

Permalink
Fix a typo in de github workflow for behat testing with symfony maile…
Browse files Browse the repository at this point in the history
…r settings, also change the behat entity system for symfony mailer to configuration settings
  • Loading branch information
Robert Ragas committed Aug 23, 2023
1 parent f896530 commit 16ee80b
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 34 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/behat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -231,7 +231,7 @@ jobs:
# Make sure symfony_mailer is configured for our CI.
drush cset symfony_mailer.mailer_transport.sendmail plugin 'smtp' -y
drush cset symfony_mailer.mailer_transport.sendmail configuration.user '' -y
drush cset symfony_mailer.mailer_transport.sendmail configuration.passs '' -y
drush cset symfony_mailer.mailer_transport.sendmail configuration.pass '' -y
drush cset symfony_mailer.mailer_transport.sendmail configuration.host 'mailcatcher' -y
drush cset symfony_mailer.mailer_transport.sendmail configuration.port '1025' -y
Expand Down
55 changes: 23 additions & 32 deletions tests/behat/features/bootstrap/EmailContext.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder;
use Symfony\Component\HttpFoundation\File\File;
use Drupal\symfony_mailer\Entity\MailerTransport;
use Drupal\symfony_mailer\Entity\MailerPolicy;

class EmailContext implements Context {

Expand All @@ -20,27 +18,18 @@ class EmailContext implements Context {
* @BeforeScenario @email-spool
*/
public function enableEmailSpool() {
if ($default = MailerTransport::loadDefault()) {
\Drupal::state()->set('default_mailer_transport', $default->id());
}

if (!$entity = MailerTransport::load('behat_file_spool')) {
$entity = MailerTransport::create([
'id' => 'behat_file_spool',
'label' => 'Behat File Spool',
'plugin' => 'null',
]);
$entity->save();
}

$entity->setAsDefault();
// Set transport to null to stop sending out emails.
$config = \Drupal::configFactory()
->getEditable('symfony_mailer.mailer_transport.sendmail');
$config->set('plugin', 'null')->save();
$config->set('configuration', [])->save();

// Add the mail logger plugin to the default policy.
$default_mailer_policy = MailerPolicy::load('_');
$mailer_configuration = $default_mailer_policy->getConfiguration();
$config = \Drupal::configFactory()
->getEditable('symfony_mailer.mailer_policy._');
$mailer_configuration = $config->get('configuration');
$mailer_configuration['log_mail'] = ['spool_directory' => $this->getSpoolDir()];
$default_mailer_policy->setConfiguration($mailer_configuration);
$default_mailer_policy->save();
$config->set('configuration', $mailer_configuration)->save();

// Clean up emails that were left behind.
$this->purgeSpool();
Expand All @@ -52,20 +41,22 @@ public function enableEmailSpool() {
* @AfterScenario @email-spool
*/
public function disableEmailSpool() {
// Update Drupal configuration.
MailerTransport::load('behat_file_spool')->delete();

if ($default_id = \Drupal::state()->get('default_mailer_transport')) {
MailerTransport::load($default_id)->setAsDefault();
\Drupal::state()->delete('default_mailer_transport');
}
// Restore transport back to mailcatcher.

Check warning on line 44 in tests/behat/features/bootstrap/EmailContext.php

View workflow job for this annotation

GitHub Actions / Spell Check

Unknown word (mailcatcher)
$config = \Drupal::configFactory()
->getEditable('symfony_mailer.mailer_transport.sendmail');
$config->set('plugin', 'stmp');

Check warning on line 47 in tests/behat/features/bootstrap/EmailContext.php

View workflow job for this annotation

GitHub Actions / Spell Check

Unknown word (stmp)
$config->set('configuration.user', '');
$config->set('configuration.pass', '');
$config->set('configuration.host', 'mailcatcher');

Check warning on line 50 in tests/behat/features/bootstrap/EmailContext.php

View workflow job for this annotation

GitHub Actions / Spell Check

Unknown word (mailcatcher)
$config->set('configuration.port', '1025');
$config->save();

// Remove the mail logger plugin to the default policy.
$default_mailer_policy = MailerPolicy::load('_');
$mailer_configuration = $default_mailer_policy->getConfiguration();
$config = \Drupal::configFactory()
->getEditable('symfony_mailer.mailer_policy._');
$mailer_configuration = $config->get('configuration');
unset($mailer_configuration['log_mail']);
$default_mailer_policy->setConfiguration($mailer_configuration);
$default_mailer_policy->save();
$config->set('configuration', $mailer_configuration)->save();
}

/**
Expand Down Expand Up @@ -112,7 +103,7 @@ public function getEmailContent($file) {
* The path where the spooled emails are stored.
*/
protected function getSpoolDir() {
$path = \Drupal::service('extension.list.profile')->getPath('social') . '/tests/behat/features/mailer-spool';
$path = \Drupal::service('extension.list.profile')->getPath('social') . '/tests/behat/mail-spool';
if (!file_exists($path)) {
mkdir($path, 0777, true);
}
Expand Down
1 change: 0 additions & 1 deletion tests/behat/mail-spool/.gitignore

This file was deleted.

0 comments on commit 16ee80b

Please sign in to comment.