This commit is contained in:
shamoon
2025-09-17 17:09:25 -07:00
parent bf7e7cd3b9
commit acaa83ad30
2 changed files with 60 additions and 11 deletions

View File

@@ -139,6 +139,7 @@ describe('DocumentDetailComponent', () => {
let deviceDetectorService: DeviceDetectorService
let httpTestingController: HttpTestingController
let componentRouterService: ComponentRouterService
let tagService: TagService
let currentUserCan = true
let currentUserHasObjectPermissions = true
@@ -288,6 +289,7 @@ describe('DocumentDetailComponent', () => {
fixture = TestBed.createComponent(DocumentDetailComponent)
httpTestingController = TestBed.inject(HttpTestingController)
componentRouterService = TestBed.inject(ComponentRouterService)
tagService = TestBed.inject(TagService)
component = fixture.componentInstance
})
@@ -400,17 +402,60 @@ describe('DocumentDetailComponent', () => {
let openModal: NgbModalRef
modalService.activeInstances.subscribe((modal) => (openModal = modal[0]))
const modalSpy = jest.spyOn(modalService, 'open')
component.createTag('NewTag12')
expect(modalSpy).toHaveBeenCalled()
openModal.componentInstance.succeeded.next({
id: 12,
name: 'NewTag12',
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
})
expect(component.documentForm.get('tags').value).toContain(12)
expect(component.suggestions.suggested_tags).not.toContain('NewTag12')
// temporarily add NewTag12 to listAll results
const listAllSpy = jest
.spyOn(tagService, 'listAll')
.mockImplementation(() =>
of({
count: 4,
all: [41, 42, 43, 12],
results: [
{
id: 41,
name: 'Tag41',
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
},
{
id: 42,
name: 'Tag42',
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
},
{
id: 43,
name: 'Tag43',
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
},
{
id: 12,
name: 'NewTag12',
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
},
],
})
)
try {
component.createTag('NewTag12')
expect(modalSpy).toHaveBeenCalled()
openModal.componentInstance.succeeded.next({
id: 12,
name: 'NewTag12',
is_inbox_tag: true,
color: '#ff0000',
text_color: '#000000',
})
expect(component.tagsInput.value.includes(12)).toBeTruthy()
expect(component.suggestions.suggested_tags).not.toContain('NewTag12')
} finally {
listAllSpy.mockRestore()
}
})
it('should support creating document type, remove from suggestions', () => {

View File

@@ -736,6 +736,8 @@ export class DocumentDetailComponent
})
modal.componentInstance.dialogMode = EditDialogMode.CREATE
if (newName) modal.componentInstance.object = { name: newName }
console.log('createTag called with', newName)
modal.componentInstance.succeeded
.pipe(
switchMap((newTag) => {
@@ -748,6 +750,8 @@ export class DocumentDetailComponent
.subscribe(({ newTag, tags }) => {
this.tagsInput.tags = tags.results
this.tagsInput.addTag(newTag.id)
console.log(this.suggestions)
if (this.suggestions) {
this.suggestions.suggested_tags =
this.suggestions.suggested_tags.filter((tag) => tag !== newName)