mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-05-24 02:02:23 -04:00
toasts component testing conditional import of angular setup-jest for vscode-jest support Update jest.config.js Create open-documents.service.spec.ts Add unit tests for all REST services settings service test Remove component from settings service test Create permissions.service.spec.ts upload documents service tests Update package.json Create toast.service.spec.ts Tasks service test Statistics widget component tests Update permissions.service.ts Create app.component.spec.ts settings component testing tasks component unit testing Management list component generic tests Some management component tests document notes component unit tests Create document-list.component.spec.ts Create save-view-config-dialog.component.spec.ts Create filter-editor.component.spec.ts small and large document cards unit testing Create bulk-editor.component.spec.ts document detail unit tests saving work on documentdetail component spec Create document-asn.component.spec.ts dashboard & widgets unit testing Fix ResizeObserver mock common component unit tests fix some merge errors Update app-frame.component.spec.ts Create page-header.component.spec.ts input component unit tests FilterableDropdownComponent unit testing and found minor errors update taskservice unit tests Edit dialogs unit tests Create date-dropdown.component.spec.ts Remove selectors from guard tests confirm dialog component tests app frame component test Miscellaneous component tests Update document-list-view.service.spec.ts directives unit tests Remove unused resizeobserver mock guard unit tests Update query-params.spec.ts try to fix flaky playwright filter rules utils & testing Interceptor unit tests Pipes unit testing Utils unit tests Update upload-documents.service.spec.ts consumer status service tests Update setup-jest.ts Create document-list-view.service.spec.ts Update app-routing.module.ts
121 lines
4.2 KiB
TypeScript
121 lines
4.2 KiB
TypeScript
import { DatePipe } from '@angular/common'
|
|
import { HttpClientTestingModule } from '@angular/common/http/testing'
|
|
import {
|
|
ComponentFixture,
|
|
TestBed,
|
|
fakeAsync,
|
|
tick,
|
|
} from '@angular/core/testing'
|
|
import { RouterTestingModule } from '@angular/router/testing'
|
|
import {
|
|
NgbPopoverModule,
|
|
NgbTooltipModule,
|
|
NgbProgressbarModule,
|
|
} from '@ng-bootstrap/ng-bootstrap'
|
|
import { IfPermissionsDirective } from 'src/app/directives/if-permissions.directive'
|
|
import { CustomDatePipe } from 'src/app/pipes/custom-date.pipe'
|
|
import { DocumentTitlePipe } from 'src/app/pipes/document-title.pipe'
|
|
import { SafeUrlPipe } from 'src/app/pipes/safeurl.pipe'
|
|
import { DocumentCardSmallComponent } from './document-card-small.component'
|
|
import { of } from 'rxjs'
|
|
import { By } from '@angular/platform-browser'
|
|
import { TagComponent } from '../../common/tag/tag.component'
|
|
import { PaperlessTag } from 'src/app/data/paperless-tag'
|
|
|
|
const doc = {
|
|
id: 10,
|
|
title: 'Document 10',
|
|
tags: [1, 2, 3, 4, 5, 6, 7, 8],
|
|
correspondent: 8,
|
|
document_type: 10,
|
|
storage_path: null,
|
|
notes: [
|
|
{
|
|
id: 11,
|
|
note: 'This is some note content bananas',
|
|
},
|
|
],
|
|
tags$: of([
|
|
{ id: 1, name: 'Tag1' },
|
|
{ id: 2, name: 'Tag2' },
|
|
{ id: 3, name: 'Tag3' },
|
|
{ id: 4, name: 'Tag4' },
|
|
{ id: 5, name: 'Tag5' },
|
|
{ id: 6, name: 'Tag6' },
|
|
{ id: 7, name: 'Tag7' },
|
|
{ id: 8, name: 'Tag8' },
|
|
]),
|
|
content:
|
|
'Cupcake ipsum dolor sit amet ice cream. Donut shortbread cheesecake caramels tiramisu pastry caramels chocolate bar. Tart tootsie roll muffin icing cotton candy topping sweet roll. Pie lollipop dragée sesame snaps donut tart pudding. Oat cake apple pie danish danish candy canes. Shortbread candy canes sesame snaps muffin tiramisu marshmallow chocolate bar halvah. Cake lemon drops candy apple pie carrot cake bonbon halvah pastry gummi bears. Sweet roll candy ice cream sesame snaps marzipan cookie ice cream. Cake cheesecake apple pie muffin candy toffee lollipop. Carrot cake oat cake cookie biscuit cupcake cake marshmallow. Sweet roll jujubes carrot cake cheesecake cake candy canes sweet roll gingerbread jelly beans. Apple pie sugar plum oat cake halvah cake. Pie oat cake chocolate cake cookie gingerbread marzipan. Lemon drops cheesecake lollipop danish marzipan candy.',
|
|
}
|
|
|
|
describe('DocumentCardSmallComponent', () => {
|
|
let component: DocumentCardSmallComponent
|
|
let fixture: ComponentFixture<DocumentCardSmallComponent>
|
|
|
|
beforeEach(async () => {
|
|
TestBed.configureTestingModule({
|
|
declarations: [
|
|
DocumentCardSmallComponent,
|
|
DocumentTitlePipe,
|
|
CustomDatePipe,
|
|
IfPermissionsDirective,
|
|
SafeUrlPipe,
|
|
TagComponent,
|
|
],
|
|
providers: [DatePipe],
|
|
imports: [
|
|
HttpClientTestingModule,
|
|
RouterTestingModule,
|
|
NgbPopoverModule,
|
|
NgbTooltipModule,
|
|
NgbProgressbarModule,
|
|
],
|
|
}).compileComponents()
|
|
|
|
fixture = TestBed.createComponent(DocumentCardSmallComponent)
|
|
component = fixture.componentInstance
|
|
component.document = Object.assign({}, doc)
|
|
fixture.detectChanges()
|
|
})
|
|
|
|
it('should display a document, limit tags to 5', () => {
|
|
expect(fixture.nativeElement.textContent).toContain('Document 10')
|
|
expect(
|
|
fixture.debugElement.queryAll(By.directive(TagComponent))
|
|
).toHaveLength(5)
|
|
component.document.tags = [1, 2]
|
|
component.document.tags$ = of([
|
|
{ id: 1 } as PaperlessTag,
|
|
{ id: 2 } as PaperlessTag,
|
|
])
|
|
fixture.detectChanges()
|
|
expect(
|
|
fixture.debugElement.queryAll(By.directive(TagComponent))
|
|
).toHaveLength(2)
|
|
})
|
|
|
|
it('should increase limit tags to 6 if no notes', () => {
|
|
component.document.notes = []
|
|
fixture.detectChanges()
|
|
expect(
|
|
fixture.debugElement.queryAll(By.directive(TagComponent))
|
|
).toHaveLength(6)
|
|
})
|
|
|
|
it('should show preview on mouseover after delay to preload content', fakeAsync(() => {
|
|
component.mouseEnterPreview()
|
|
expect(component.popover.isOpen()).toBeTruthy()
|
|
expect(component.popoverHidden).toBeTruthy()
|
|
tick(600)
|
|
expect(component.popoverHidden).toBeFalsy()
|
|
component.mouseLeaveCard()
|
|
|
|
component.mouseEnterPreview()
|
|
tick(100)
|
|
component.mouseLeavePreview()
|
|
tick(600)
|
|
expect(component.popover.isOpen()).toBeFalsy()
|
|
}))
|
|
})
|