import { ComponentFixture, TestBed } from '@angular/core/testing'; import { HotToastService, provideHotToastConfig } from '@ngxpert/hot-toast'; import { from, map, of } from 'rxjs'; import { GridReadyEvent } from 'ag-grid-community'; import { MatDialog } from '@angular/material/dialog'; import { ArchiveComponent } from './archive.component'; import { ApiService } from '../../../../shared/api.service'; import { MockApiService } from '../../../../../../mocks/services/mock.api.service'; // Mocking the dependencies jest.mock('@ngxpert/hot-toast', () => ({ HotToastService: jest.fn(), })); describe('ArchiveComponent', () => { let component: ArchiveComponent; let fixture: ComponentFixture; const mockGridReadyEvent: GridReadyEvent = { api: { setGridOption: jest.fn(), addEventListener: jest.fn() }, columnApi: { someColumnApiMethod: jest.fn() }, type: 'gridReady', } as any; const mockHotToastService = { observe: jest.fn().mockImplementation(() => ({ loading: 'speichern...', success: 'Änderungen gespeichert', error: 'Änderungen konnten nicht gespeichert werden!', subscribe: jest.fn().mockReturnValue(of([])) })) }; beforeEach(async () => { await TestBed.configureTestingModule({ imports: [ArchiveComponent, ], providers: [ { provide: HotToastService, useValue: mockHotToastService }, { provide: ApiService, useClass: MockApiService }, ] }).compileComponents(); }); beforeEach(() => { fixture = TestBed.createComponent(ArchiveComponent); component = fixture.componentInstance; fixture.detectChanges(); component.onGridReady(mockGridReadyEvent); }); it('should create the archive', () => { expect(component).toBeTruthy(); }); it('should load the data on start', () => { expect(component['api'].getKeyArchive).toHaveBeenCalled(); }); });