import { TestBed } from '@angular/core/testing' import { UsernamePipe } from './username.pipe' import { HttpClientTestingModule, HttpTestingController, } from '@angular/common/http/testing' import { environment } from 'src/environments/environment' import { PermissionsService } from '../services/permissions.service' import { UserService } from '../services/rest/user.service' describe('UsernamePipe', () => { let pipe: UsernamePipe let httpTestingController: HttpTestingController let permissionsService: PermissionsService beforeEach(() => { TestBed.configureTestingModule({ providers: [UsernamePipe, PermissionsService], imports: [HttpClientTestingModule], }) httpTestingController = TestBed.inject(HttpTestingController) permissionsService = TestBed.inject(PermissionsService) const permissionsSpy = jest.spyOn(permissionsService, 'currentUserCan') permissionsSpy.mockImplementation((action, type) => { return true }) pipe = TestBed.inject(UsernamePipe) }) afterEach(() => { httpTestingController.verify() }) it('should transform user id to username', () => { const req = httpTestingController.expectOne( `${environment.apiBaseUrl}users/?page=1&page_size=100000` ) req.flush({ results: [ { id: 2, username: 'username2', }, { id: 3, username: 'username3', first_name: 'User', last_name: 'Name3', }, ], }) let username = pipe.transform(2) expect(username).toEqual('username2') username = pipe.transform(3) expect(username).toEqual('User Name3') username = pipe.transform(4) expect(username).toEqual('') }) it('should show generic label when no users retrieved', () => { const req = httpTestingController.expectOne( `${environment.apiBaseUrl}users/?page=1&page_size=100000` ) req.flush(null) let username = pipe.transform(4) expect(username).toEqual('Shared') }) })