import { Injectable } from '@angular/core'; import { GCMockModule } from '@core/mocks/gc-module.mock'; import { USER_SERVICE_MOCK } from '@core/mocks/user.service.mock'; import { PORTAL_DETERMINATION_SERVICE_MOCK } from '@core/services/portal-determination.service.mock'; import { AdaptedAdminUser } from '@core/typings/user.typing'; import { PaginationOptions } from '@yourcause/common'; import { I18nPipe } from '@yourcause/common/i18n'; import { BeforeEach, Spec, TestCase } from '@yourcause/test-decorators'; import { DescribeAngularService } from '@yourcause/test-decorators/angular'; import { expect } from 'chai'; import { InternalAdminsComponent } from './internal-admins.component'; @Injectable({ providedIn: 'root' }) @DescribeAngularService(InternalAdminsComponent, { imports: [ GCMockModule ], providers: [ USER_SERVICE_MOCK, PORTAL_DETERMINATION_SERVICE_MOCK ], declarations: [ I18nPipe ] }) export class InternalAdminsComponentSpec implements Spec { private options: PaginationOptions; @BeforeEach() setupValues ( comp: InternalAdminsComponent ) { this.options = { rowsPerPage: 12, pageNumber: 0, sortColumns: [{ columnName: 'fullName', sortAscending: true }], filterColumns: [], retrieveTotalRecordCount: true, returnAll: true }; comp['adminUsersService']['downloadAdminReport'] = async () => {}; } @TestCase('should exist') testShouldExist (fixture: InternalAdminsComponent) { expect(fixture).to.exist; } @TestCase('should trigger download') async testShouldTriggerDownload (compInst: InternalAdminsComponent) { compInst.paginatedOptions = this.options; const voidedReturn: void = await compInst.downloadAdminReport(); expect(voidedReturn).to.be.undefined; } }