mirror of
https://github.com/paperless-ngx/paperless-ngx.git
synced 2025-10-08 02:06:16 -05:00
Frontend coverage
This commit is contained in:
@@ -461,6 +461,130 @@ describe('WorkflowEditDialogComponent', () => {
|
|||||||
expect(formValues.triggers[0].conditions).toBeUndefined()
|
expect(formValues.triggers[0].conditions).toBeUndefined()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('should reuse cached condition type options and update disabled state', () => {
|
||||||
|
component.object = undefined
|
||||||
|
component.addTrigger()
|
||||||
|
const triggerGroup = component.triggerFields.at(0) as FormGroup
|
||||||
|
component.addCondition(triggerGroup)
|
||||||
|
|
||||||
|
const optionsFirst = component.getConditionTypeOptions(triggerGroup, 0)
|
||||||
|
const optionsSecond = component.getConditionTypeOptions(triggerGroup, 0)
|
||||||
|
expect(optionsFirst).toBe(optionsSecond)
|
||||||
|
|
||||||
|
// to force disabled flag
|
||||||
|
component.addCondition(triggerGroup)
|
||||||
|
const conditionArray = component.getConditionsFormArray(triggerGroup)
|
||||||
|
const firstCondition = conditionArray.at(0)
|
||||||
|
firstCondition.get('type').setValue(TriggerConditionType.CorrespondentIs)
|
||||||
|
|
||||||
|
component.addCondition(triggerGroup)
|
||||||
|
const updatedConditions = component.getConditionsFormArray(triggerGroup)
|
||||||
|
const secondCondition = updatedConditions.at(1)
|
||||||
|
const options = component.getConditionTypeOptions(triggerGroup, 1)
|
||||||
|
const correspondentIsOption = options.find(
|
||||||
|
(option) => option.id === TriggerConditionType.CorrespondentIs
|
||||||
|
)
|
||||||
|
expect(correspondentIsOption.disabled).toBe(true)
|
||||||
|
|
||||||
|
firstCondition.get('type').setValue(TriggerConditionType.DocumentTypeNot)
|
||||||
|
secondCondition.get('type').setValue(TriggerConditionType.TagsAll)
|
||||||
|
const postChangeOptions = component.getConditionTypeOptions(triggerGroup, 1)
|
||||||
|
const correspondentOptionAfter = postChangeOptions.find(
|
||||||
|
(option) => option.id === TriggerConditionType.CorrespondentIs
|
||||||
|
)
|
||||||
|
expect(correspondentOptionAfter.disabled).toBe(false)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should build condition form array from existing trigger filters', () => {
|
||||||
|
const trigger = workflow.triggers[0]
|
||||||
|
trigger.filter_has_tags = [1]
|
||||||
|
trigger.filter_has_all_tags = [2, 3]
|
||||||
|
trigger.filter_has_not_tags = [4]
|
||||||
|
trigger.filter_has_correspondent = 5 as any
|
||||||
|
trigger.filter_has_not_correspondents = [6] as any
|
||||||
|
trigger.filter_has_document_type = 7 as any
|
||||||
|
trigger.filter_has_not_document_types = [8] as any
|
||||||
|
trigger.filter_has_storage_path = 9 as any
|
||||||
|
trigger.filter_has_not_storage_paths = [10] as any
|
||||||
|
|
||||||
|
component.object = workflow
|
||||||
|
component.ngOnInit()
|
||||||
|
const triggerGroup = component.triggerFields.at(0) as FormGroup
|
||||||
|
const conditions = component.getConditionsFormArray(triggerGroup)
|
||||||
|
expect(conditions.length).toBe(9)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should expose select metadata helpers', () => {
|
||||||
|
expect(
|
||||||
|
component.isSelectMultiple(TriggerConditionType.CorrespondentNot)
|
||||||
|
).toBe(true)
|
||||||
|
expect(
|
||||||
|
component.isSelectMultiple(TriggerConditionType.CorrespondentIs)
|
||||||
|
).toBe(false)
|
||||||
|
|
||||||
|
component.correspondents = [{ id: 1, name: 'C1' } as any]
|
||||||
|
component.documentTypes = [{ id: 2, name: 'DT' } as any]
|
||||||
|
component.storagePaths = [{ id: 3, name: 'SP' } as any]
|
||||||
|
|
||||||
|
expect(
|
||||||
|
component.getConditionSelectItems(TriggerConditionType.CorrespondentIs)
|
||||||
|
).toEqual(component.correspondents)
|
||||||
|
expect(
|
||||||
|
component.getConditionSelectItems(TriggerConditionType.DocumentTypeIs)
|
||||||
|
).toEqual(component.documentTypes)
|
||||||
|
expect(
|
||||||
|
component.getConditionSelectItems(TriggerConditionType.StoragePathIs)
|
||||||
|
).toEqual(component.storagePaths)
|
||||||
|
expect(
|
||||||
|
component.getConditionSelectItems(TriggerConditionType.TagsAll)
|
||||||
|
).toEqual([])
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should normalize condition values for single and multi selects', () => {
|
||||||
|
expect(
|
||||||
|
component['normalizeConditionValue'](TriggerConditionType.TagsAny)
|
||||||
|
).toEqual([])
|
||||||
|
expect(
|
||||||
|
component['normalizeConditionValue'](TriggerConditionType.TagsAny, 5)
|
||||||
|
).toEqual([5])
|
||||||
|
expect(
|
||||||
|
component['normalizeConditionValue'](TriggerConditionType.TagsAny, [5, 6])
|
||||||
|
).toEqual([5, 6])
|
||||||
|
expect(
|
||||||
|
component['normalizeConditionValue'](
|
||||||
|
TriggerConditionType.CorrespondentIs,
|
||||||
|
[7]
|
||||||
|
)
|
||||||
|
).toEqual(7)
|
||||||
|
expect(
|
||||||
|
component['normalizeConditionValue'](
|
||||||
|
TriggerConditionType.CorrespondentIs,
|
||||||
|
8
|
||||||
|
)
|
||||||
|
).toEqual(8)
|
||||||
|
})
|
||||||
|
|
||||||
|
it('should add and remove condition form groups', () => {
|
||||||
|
component['changeDetector'] = { detectChanges: jest.fn() } as any
|
||||||
|
component.object = undefined
|
||||||
|
component.addTrigger()
|
||||||
|
const triggerGroup = component.triggerFields.at(0) as FormGroup
|
||||||
|
|
||||||
|
component.addCondition(triggerGroup)
|
||||||
|
|
||||||
|
component.removeCondition(triggerGroup, 0)
|
||||||
|
expect(component.getConditionsFormArray(triggerGroup).length).toBe(0)
|
||||||
|
|
||||||
|
component.addCondition(triggerGroup)
|
||||||
|
const conditionArrayAfterAdd =
|
||||||
|
component.getConditionsFormArray(triggerGroup)
|
||||||
|
conditionArrayAfterAdd
|
||||||
|
.at(0)
|
||||||
|
.get('type')
|
||||||
|
.setValue(TriggerConditionType.TagsAll)
|
||||||
|
expect(component.getConditionsFormArray(triggerGroup).length).toBe(1)
|
||||||
|
})
|
||||||
|
|
||||||
it('should remove selected custom field from the form group', () => {
|
it('should remove selected custom field from the form group', () => {
|
||||||
const formGroup = new FormGroup({
|
const formGroup = new FormGroup({
|
||||||
assign_custom_fields: new FormControl([1, 2, 3]),
|
assign_custom_fields: new FormControl([1, 2, 3]),
|
||||||
|
Reference in New Issue
Block a user