Estoy tratando de escribir casos de prueba de unidad para Grid, para esto necesito recorrer los datos de gridapi pero me está dando el error Cannot read undefined forEachNode.
miComponente.componente.ts.
import { Component, OnInit, } from '@angular/core'; import { GridOptions, GridApi, } from "ag-grid-community"; @Component({ selector: 'my-component', templateUrl: './mycomponent.component.html', styleUrls: ['./mycomponent.component.scss'] }) export class MyComponent implements OnInit { grid: GridOptions; data; constructor() {} getData() { this.grid.api.forEachNode((node) => this.data.push(node.data.id); ); } }
micomponente.componente.spec.ts:
import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { Mycomponent} from './mycomponent.component'; describe('Mycomponent', () => { let component: Mycomponent; let fixture: ComponentFixture<Mycomponent>; beforeEach( waitForAsync(() => { TestBed.configureTestingModule({ declarations: [Mycomponent], }).compileComponents(); }) ); beforeEach(() => { fixture = TestBed.createComponent(Mycomponent); component = fixture.componentInstance; const gridObj = jasmine.createSpyObj('grid', [ 'api', ]); gridObj.grid.api.and.returnValue({ context: {} data : { id:1,name: 'columName'} }); component.grid = gridObj; fixture.detectChanges(); }); it(`should call getData method.`, () => { component.getData(); expect(component.data).toEqual('[1]'); }); });
Cuando trato de ejecutar el caso de prueba anterior, TypeError: No se pueden leer las propiedades de undefined (leyendo 'forEachNode'). ¿Alguien puede decirme dónde estoy haciendo mal?