]> git.ipfire.org Git - thirdparty/paperless-ngx.git/blob
0a0d32e655fb65c716fd67d6f4c91f6442b51a5e
[thirdparty/paperless-ngx.git] /
1 import { provideHttpClientTesting } from '@angular/common/http/testing'
2 import { ComponentFixture, TestBed } from '@angular/core/testing'
3 import { FormsModule, ReactiveFormsModule } from '@angular/forms'
4 import { NgbActiveModal, NgbModule } from '@ng-bootstrap/ng-bootstrap'
5 import { NgSelectModule } from '@ng-select/ng-select'
6 import { IfOwnerDirective } from 'src/app/directives/if-owner.directive'
7 import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
8 import { SettingsService } from 'src/app/services/settings.service'
9 import { PermissionsFormComponent } from '../../input/permissions/permissions-form/permissions-form.component'
10 import { SelectComponent } from '../../input/select/select.component'
11 import { TextComponent } from '../../input/text/text.component'
12 import { EditDialogMode } from '../edit-dialog.component'
13 import { DocumentTypeEditDialogComponent } from './document-type-edit-dialog.component'
14 import { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http'
15
16 describe('DocumentTypeEditDialogComponent', () => {
17 let component: DocumentTypeEditDialogComponent
18 let settingsService: SettingsService
19 let fixture: ComponentFixture<DocumentTypeEditDialogComponent>
20
21 beforeEach(async () => {
22 TestBed.configureTestingModule({
23 declarations: [
24 DocumentTypeEditDialogComponent,
25 IfPermissionsDirective,
26 IfOwnerDirective,
27 SelectComponent,
28 TextComponent,
29 PermissionsFormComponent,
30 ],
31 imports: [FormsModule, ReactiveFormsModule, NgSelectModule, NgbModule],
32 providers: [
33 NgbActiveModal,
34 provideHttpClient(withInterceptorsFromDi()),
35 provideHttpClientTesting(),
36 ],
37 }).compileComponents()
38
39 fixture = TestBed.createComponent(DocumentTypeEditDialogComponent)
40 settingsService = TestBed.inject(SettingsService)
41 settingsService.currentUser = { id: 99, username: 'user99' }
42 component = fixture.componentInstance
43
44 fixture.detectChanges()
45 })
46
47 it('should support create and edit modes', () => {
48 component.dialogMode = EditDialogMode.CREATE
49 const createTitleSpy = jest.spyOn(component, 'getCreateTitle')
50 const editTitleSpy = jest.spyOn(component, 'getEditTitle')
51 fixture.detectChanges()
52 expect(createTitleSpy).toHaveBeenCalled()
53 expect(editTitleSpy).not.toHaveBeenCalled()
54 component.dialogMode = EditDialogMode.EDIT
55 fixture.detectChanges()
56 expect(editTitleSpy).toHaveBeenCalled()
57 })
58 })