Pasar al contenido principal

Behat3.x pasos de interacciones con Nodos para Drupal

En esté artículo agregaremos pasos para manipular nuestros nodos de Drupal  

Con ayuda de estás dos funciones podremos publicar y despublicar nodos. Muy útil si necesitamos tener ciertos contenidos para hacer pruebas sobre ellos.

Publicación de Nodos

/**
 * @BeforeSuite
 */
public static
function publishNode() { 
  $nids = array();  // Load all nodes in one go for better performance. Example (12, 15)
   
  $nodes = node_load_multiple($nids);
  foreach($nodes as $node) {
       
    $node-> status = 1;  // set status property to 1, Published
       
    node_save($node);   //save the node
  }
}

Despublicación de Nodos

/**
 * @AfterSuite
 */
public static
function unpublishNode() { 
  $nids = array();  // Load all nodes in one go for better performance. Example (1, 5, 15)
   
  $nodes = node_load_multiple($nids); 
  foreach($nodes as $node) {    

    $node-> status = 0; // set status property to 0, Unpublish
       
    node_save($node);   // save the node(s)
  }
}

Recuperar el NID del último nodo creado

 
 /**
   * Take the last nid create. Optional bundle
   *
   * @param string $bundle
   *   Optionally restrict the search to this type of node.
   *
   * @return int
   *   Node id (Nid).
   */
  public function getLastNodeNid($bundle = NULL) {
    if (!empty($bundle)) {
      $query = db_query("SELECT nid FROM node WHERE type = :bundle ORDER BY nid DESC LIMIT 1", array(':bundle' => $bundle));
    }
    else {
      $query = db_query("SELECT nid FROM node ORDER BY nid DESC LIMIT 1");
    }

    return $query->fetchField();
  }

A continuación agregamos información sobre las herramientas utilizadas y documentación sobre Behat relativa a los pasos

Información sobre Tags @BeforeSuite y @AfterSuite
https://docs.behat.org/en/v2.5/guides/3.hooks.html#hooks

Información sobre Drupal Extension y Mink
https://behat-drupal-extension.readthedocs.io/en/3.1/intro.html