monitoring-8.x-1.x-dev/tests/src/Kernel/MonitoringCronErrorPluginTest.php

tests/src/Kernel/MonitoringCronErrorPluginTest.php
<?php

namespace Drupal\Tests\monitoring\Kernel;

use Drupal\ultimate_cron\Entity\CronJob;

/**
 * Kernel test for ultimate cron errors sensor plugin.
 *
 * @group monitoring
 */
class MonitoringCronErrorPluginTest extends MonitoringUnitTestBase {

  /**
   * Modules to enable.
   *
   * @var array
   */
  protected static $modules = ['node', 'ultimate_cron', 'ultimate_cron_logger_test'];

  /**
   * {@inheritdoc}
   */
  public function setup(): void {
    parent::setUp();

    // Install schema to create the required tables.
    $this->installSchema('ultimate_cron', [
      'ultimate_cron_log',
      'ultimate_cron_lock'
    ]);

    // Create cron jobs to be run.
    \Drupal::service('ultimate_cron.discovery')->discoverCronJobs();
    // Disable system_cron job, so it does not create an additional error.
    $job = CronJob::load('system_cron');
    $job->disable();
    $job->save();
  }

  /**
   * Tests ultimate cron errors sensor.
   */
  public function testUltimateCronErrorsSensorPlugin() {

    // Run sensor and make sure there are no errors.
    $result = $this->runSensor('ultimate_cron_errors');
    $this->assertEquals(0, $result->getValue());

    // Set 1 error and run cron.
    \Drupal::state()->set('ultimate_cron_logger_test_cron_action', 'exception');
    \Drupal::service('cron')->run();

    // Run sensor and assert an error.
    $result = $this->runSensor('ultimate_cron_errors');
    $this->assertEquals(1, $result->getValue());

    // Assert verbose output and error message.
    $verbose_output = $result->getVerboseOutput()['log_entries']['#rows'][0];
    $this->assertTrue($result->isOk());
    $this->assertEquals('Default cron handler (Ultimate Cron Logger Test)', $verbose_output['name']);
    $this->assertStringContainsString('Test cron exception', $verbose_output['message']);
  }
}

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc