mirror of
https://github.com/sartography/cr-connect-bpmn.git
synced 2025-02-03 04:13:36 +00:00
Adds tests for workflow spec categories
This commit is contained in:
parent
d4ef749b1c
commit
3f23d972b6
@ -14,11 +14,16 @@ import {
|
||||
ApiService,
|
||||
MockEnvironment,
|
||||
mockWorkflowSpec0,
|
||||
mockWorkflowSpec1, mockWorkflowSpecCategories,
|
||||
mockWorkflowSpec1, mockWorkflowSpecCategories, mockWorkflowSpecCategory0, mockWorkflowSpecCategory1,
|
||||
mockWorkflowSpecs
|
||||
} from 'sartography-workflow-lib';
|
||||
import {DeleteWorkflowSpecDialogComponent} from '../_dialogs/delete-workflow-spec-dialog/delete-workflow-spec-dialog.component';
|
||||
import {DeleteWorkflowSpecDialogData, WorkflowSpecDialogData} from '../_interfaces/dialog-data';
|
||||
import {
|
||||
DeleteWorkflowSpecCategoryDialogData,
|
||||
DeleteWorkflowSpecDialogData,
|
||||
WorkflowSpecCategoryDialogData,
|
||||
WorkflowSpecDialogData
|
||||
} from '../_interfaces/dialog-data';
|
||||
import {GetIconCodePipe} from '../_pipes/get-icon-code.pipe';
|
||||
import {FileListComponent} from '../file-list/file-list.component';
|
||||
import {WorkflowSpecListComponent} from './workflow-spec-list.component';
|
||||
@ -192,4 +197,100 @@ describe('WorkflowSpecListComponent', () => {
|
||||
expect(loadWorkflowSpecsSpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should show a metadata dialog when editing a workflow spec category', () => {
|
||||
let mockCatData: WorkflowSpecCategoryDialogData = {
|
||||
id: null,
|
||||
name: '',
|
||||
display_name: '',
|
||||
};
|
||||
|
||||
const _upsertWorkflowSpecCategorySpy = spyOn((component as any), '_upsertWorkflowSpecCategory')
|
||||
.and.stub();
|
||||
const openDialogSpy = spyOn(component.dialog, 'open')
|
||||
.and.returnValue({afterClosed: () => of(mockCatData)} as any);
|
||||
|
||||
component.editWorkflowSpecCategory(mockWorkflowSpecCategory0);
|
||||
expect(openDialogSpy).toHaveBeenCalled();
|
||||
expect(_upsertWorkflowSpecCategorySpy).not.toHaveBeenCalled();
|
||||
|
||||
mockCatData = mockWorkflowSpecCategory0 as WorkflowSpecCategoryDialogData;
|
||||
component.editWorkflowSpecCategory(mockWorkflowSpecCategory0);
|
||||
expect(openDialogSpy).toHaveBeenCalled();
|
||||
expect(_upsertWorkflowSpecCategorySpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should edit an existing workflow spec category but add a new workflow spec category', () => {
|
||||
const _addWorkflowSpecCategorySpy = spyOn((component as any), '_addWorkflowSpecCategory').and.stub();
|
||||
const _updateWorkflowSpecCategorySpy = spyOn((component as any), '_updateWorkflowSpecCategory').and.stub();
|
||||
|
||||
component.selectedSpec = undefined;
|
||||
(component as any)._upsertWorkflowSpecCategory(mockWorkflowSpecCategory1 as WorkflowSpecCategoryDialogData);
|
||||
expect(_addWorkflowSpecCategorySpy).toHaveBeenCalled();
|
||||
expect(_updateWorkflowSpecCategorySpy).not.toHaveBeenCalled();
|
||||
|
||||
_addWorkflowSpecCategorySpy.calls.reset();
|
||||
_updateWorkflowSpecCategorySpy.calls.reset();
|
||||
|
||||
component.selectedCat = mockWorkflowSpecCategory0;
|
||||
const modifiedData: WorkflowSpecCategoryDialogData = createClone()(mockWorkflowSpecCategory0);
|
||||
modifiedData.display_name = 'Modified';
|
||||
(component as any)._upsertWorkflowSpecCategory(modifiedData);
|
||||
expect(_addWorkflowSpecCategorySpy).not.toHaveBeenCalled();
|
||||
expect(_updateWorkflowSpecCategorySpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should add a workflow spec', () => {
|
||||
const _loadWorkflowSpecCategoriesSpy = spyOn((component as any), '_loadWorkflowSpecCategories').and.stub();
|
||||
const _displayMessageSpy = spyOn((component as any), '_displayMessage').and.stub();
|
||||
(component as any)._addWorkflowSpecCategory(mockWorkflowSpecCategory0);
|
||||
const catReq = httpMock.expectOne(`apiRoot/workflow-specification-category`);
|
||||
expect(catReq.request.method).toEqual('POST');
|
||||
catReq.flush(mockWorkflowSpecCategory0);
|
||||
|
||||
expect(_loadWorkflowSpecCategoriesSpy).toHaveBeenCalled();
|
||||
expect(_displayMessageSpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should edit a workflow spec category', () => {
|
||||
const _loadWorkflowSpecCategoriesSpy = spyOn((component as any), '_loadWorkflowSpecCategories').and.stub();
|
||||
const _displayMessageSpy = spyOn((component as any), '_displayMessage').and.stub();
|
||||
(component as any)._updateWorkflowSpecCategory(mockWorkflowSpecCategory0.id, mockWorkflowSpecCategory0);
|
||||
const catReq = httpMock.expectOne(`apiRoot/workflow-specification-category/${mockWorkflowSpecCategory0.id}`);
|
||||
expect(catReq.request.method).toEqual('PUT');
|
||||
catReq.flush(mockWorkflowSpecCategory0);
|
||||
|
||||
expect(_loadWorkflowSpecCategoriesSpy).toHaveBeenCalled();
|
||||
expect(_displayMessageSpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should show a confirmation dialog before deleting a workflow spec category', () => {
|
||||
const mockConfirmDeleteData: DeleteWorkflowSpecCategoryDialogData = {
|
||||
confirm: false,
|
||||
category: mockWorkflowSpecCategory0
|
||||
};
|
||||
|
||||
const _deleteWorkflowSpecCategorySpy = spyOn((component as any), '_deleteWorkflowSpecCategory').and.stub();
|
||||
const openDialogSpy = spyOn(component.dialog, 'open')
|
||||
.and.returnValue({afterClosed: () => of(mockConfirmDeleteData)} as any);
|
||||
|
||||
component.confirmDeleteWorkflowSpecCategory(mockWorkflowSpecCategory0);
|
||||
expect(openDialogSpy).toHaveBeenCalled();
|
||||
expect(_deleteWorkflowSpecCategorySpy).not.toHaveBeenCalled();
|
||||
|
||||
mockConfirmDeleteData.confirm = true;
|
||||
component.confirmDeleteWorkflowSpecCategory(mockWorkflowSpecCategory0);
|
||||
expect(openDialogSpy).toHaveBeenCalled();
|
||||
expect(_deleteWorkflowSpecCategorySpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should delete a workflow spec category', () => {
|
||||
const _loadWorkflowSpecCategoriesSpy = spyOn((component as any), '_loadWorkflowSpecCategories').and.stub();
|
||||
(component as any)._deleteWorkflowSpecCategory(mockWorkflowSpecCategory0);
|
||||
const catReq = httpMock.expectOne(`apiRoot/workflow-specification-category/${mockWorkflowSpecCategory0.id}`);
|
||||
expect(catReq.request.method).toEqual('DELETE');
|
||||
catReq.flush(null);
|
||||
|
||||
expect(_loadWorkflowSpecCategoriesSpy).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
});
|
||||
|
@ -12,6 +12,7 @@ import {
|
||||
WorkflowSpecCategoryDialogData,
|
||||
WorkflowSpecDialogData
|
||||
} from '../_interfaces/dialog-data';
|
||||
import {isNumberDefined} from '../_util/is-number-defined';
|
||||
|
||||
interface WorklflowSpecCategoryGroup {
|
||||
id: number;
|
||||
@ -74,14 +75,14 @@ export class WorkflowSpecListComponent implements OnInit {
|
||||
height: '65vh',
|
||||
width: '50vw',
|
||||
data: {
|
||||
id: this.selectedCat ? this.selectedCat.id : '',
|
||||
id: this.selectedCat ? this.selectedCat.id : null,
|
||||
name: this.selectedCat ? this.selectedCat.name || this.selectedCat.id : '',
|
||||
display_name: this.selectedCat ? this.selectedCat.display_name : '',
|
||||
},
|
||||
});
|
||||
|
||||
dialogRef.afterClosed().subscribe((data: WorkflowSpecCategoryDialogData) => {
|
||||
if (data && data.id && data.name && data.display_name) {
|
||||
if (data && isNumberDefined(data.id) && data.name && data.display_name) {
|
||||
this._upsertWorkflowSpecCategory(data);
|
||||
}
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user