public function assertWorkflowStates(TableNode $expected) {
    $states_info = [];
    foreach ($this->getWorkflows() as $workflow) {
      /** @var \Drupal\workflows\StateInterface[] $states */
      $states = $workflow->getTypePlugin()->getStates();
      foreach ($states as $state) {
        $states_info[] = [
          $workflow->label(),
          $state->label(),
          $state->id(),
        ];
      }
    }
    $actual = new TableNode($states_info);

    (new TableEqualityAssertion($expected, $actual))
      ->expectHeader([
        'Workflow',
        'Label',
        'Machine name',
      ])
      ->ignoreRowOrder()
      ->setMissingRowsLabel(self::missingRowsLabelFor('workflow states'))
      ->setUnexpectedRowsLabel(self::unexpectedRowsLabelFor('workflow states'))
      ->assert();
  }