You are here

public function RefreshPageElementsHelperTest::testAjaxResponseUpdatePageElements in Commerce Ajax Add to Cart 8

Tests updatePageElements().

@covers ::updateStatusMessages @covers ::getCartBlock @covers ::updateCart @covers ::updateFormBuildId @covers ::updatePageElements @covers ::getResponse

File

tests/src/Kernel/RefreshPageElementsHelperTest.php, line 313

Class

RefreshPageElementsHelperTest
Tests RefreshPageElementsHelper methods.

Namespace

Drupal\Tests\dc_ajax_add_cart\Kernel

Code

public function testAjaxResponseUpdatePageElements() {
  $this
    ->placeStatusMessagesBlock();
  $form_build_id_old = $this
    ->randomMachineName();
  $form_build_id = $this
    ->randomMachineName();
  $refreshPageElements = $this->refreshPageElementsHelper
    ->updatePageElements([
    '#build_id_old' => $form_build_id_old,
    '#build_id' => $form_build_id,
  ]);
  $this
    ->assertInstanceOfRefreshPageElementsHelper($refreshPageElements);
  $response = $refreshPageElements
    ->getResponse();
  $this
    ->assertAjaxResponse($response);

  // Check if the returned response has the expected ajax commands.
  $ajax_commands = $response
    ->getCommands();
  $actual_ajax_command_names = array_map(function ($i) {
    return $i['command'];
  }, $ajax_commands);
  foreach ($this->expectedAjaxCommandNamesUpdatePageElements as $ajax_command_name) {
    $this
      ->assertTrue(in_array($ajax_command_name, $actual_ajax_command_names), "{$ajax_command_name} is not present");
  }
}