Files
paperless-ngx/src-ui/src/app/pipes/username.pipe.spec.ts
2024-06-26 20:57:39 -07:00

80 lines
2.2 KiB
TypeScript

import { TestBed } from '@angular/core/testing'
import { UsernamePipe } from './username.pipe'
import {
HttpTestingController,
provideHttpClientTesting,
} from '@angular/common/http/testing'
import { environment } from 'src/environments/environment'
import { PermissionsService } from '../services/permissions.service'
import { UserService } from '../services/rest/user.service'
import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'
describe('UsernamePipe', () => {
let pipe: UsernamePipe
let httpTestingController: HttpTestingController
let permissionsService: PermissionsService
beforeEach(() => {
TestBed.configureTestingModule({
imports: [],
providers: [
UsernamePipe,
PermissionsService,
provideHttpClient(withInterceptorsFromDi()),
provideHttpClientTesting(),
],
})
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')
})
})