blob: bbbebb9cb6bffe2d32d718b3cce2640277e90ce5 [file] [log] [blame]
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
import { MatTreeNodeHarness } from './node-harness';
import { TreeHarnessFilters, TreeNodeHarnessFilters } from './tree-harness-filters';
export declare type TextTree = {
text?: string;
children?: TextTree[];
};
/** Harness for interacting with a standard mat-tree in tests. */
export declare class MatTreeHarness extends ComponentHarness {
/** The selector for the host element of a `MatTableHarness` instance. */
static hostSelector: string;
/**
* Gets a `HarnessPredicate` that can be used to search for a tree with specific attributes.
* @param options Options for narrowing the search
* @return a `HarnessPredicate` configured with the given options.
*/
static with(options?: TreeHarnessFilters): HarnessPredicate<MatTreeHarness>;
/** Gets all of the nodes in the tree. */
getNodes(filter?: TreeNodeHarnessFilters): Promise<MatTreeNodeHarness[]>;
/**
* Gets an object representation for the visible tree structure
* If a node is under an unexpanded node it will not be included.
* Eg.
* Tree (all nodes expanded):
* `
* <mat-tree>
* <mat-tree-node>Node 1<mat-tree-node>
* <mat-nested-tree-node>
* Node 2
* <mat-nested-tree-node>
* Node 2.1
* <mat-tree-node>
* Node 2.1.1
* <mat-tree-node>
* <mat-nested-tree-node>
* <mat-tree-node>
* Node 2.2
* <mat-tree-node>
* <mat-nested-tree-node>
* </mat-tree>`
*
* Tree structure:
* {
* children: [
* {
* text: 'Node 1',
* children: [
* {
* text: 'Node 2',
* children: [
* {
* text: 'Node 2.1',
* children: [{text: 'Node 2.1.1'}]
* },
* {text: 'Node 2.2'}
* ]
* }
* ]
* }
* ]
* };
*/
getTreeStructure(): Promise<TextTree>;
/**
* Recursively collect the structured text of the tree nodes.
* @param nodes A list of tree nodes
* @param level The level of nodes that are being accounted for during this iteration
* @param parentExpanded Whether the parent of the first node in param nodes is expanded
*/
private _getTreeStructure;
private _addChildToNode;
}