From 8f5d87935c2ff962418f50a00a183278b544fd99 Mon Sep 17 00:00:00 2001 From: alicia pritchett Date: Thu, 10 Feb 2022 14:24:37 -0500 Subject: [PATCH] fixes tests around display order --- .../library-list.component.spec.ts | 1 + .../workflow-spec-list.component.spec.ts | 22 +++++++++---------- .../workflow-spec-list.component.ts | 20 +++++++---------- 3 files changed, 19 insertions(+), 24 deletions(-) diff --git a/src/app/library-list/library-list.component.spec.ts b/src/app/library-list/library-list.component.spec.ts index f28a468..83d77da 100644 --- a/src/app/library-list/library-list.component.spec.ts +++ b/src/app/library-list/library-list.component.spec.ts @@ -42,6 +42,7 @@ describe('LibraryListComponent', () => { libraries = [mockWorkflowSpec0, mockWorkflowSpec1]; libraries[0].library = true; libraries[1].library = true; + component.workflowSpec = mockWorkflowSpec0; fixture.detectChanges(); const uReq = httpMock.expectOne('apiRoot/workflow-specification?libraries=true'); expect(uReq.request.method).toEqual('GET'); diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts b/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts index 57ca115..bf7402a 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts +++ b/src/app/workflow-spec-list/workflow-spec-list.component.spec.ts @@ -55,9 +55,8 @@ const librarySpec0: WorkflowSpec = { id: 'one_thing', display_name: 'One thing', description: 'Do just one thing', - category_id: 2, + category_id: '2', library: true, - category: mockWorkflowSpecCategory2, display_order: 2, }; @@ -154,10 +153,14 @@ describe('WorkflowSpecListComponent', () => { id: '', display_name: '', description: '', - category_id: 0, + category_id: '0', display_order: 0, standalone: false, - library: false + library: false, + libraries: [], + is_master_spec: false, + primary_file_name: '', + primary_process_id: '' }; const _upsertWorkflowSpecificationSpy = spyOn((component as any), '_upsertWorkflowSpecification') @@ -165,7 +168,6 @@ describe('WorkflowSpecListComponent', () => { const openDialogSpy = spyOn(component.dialog, 'open') .and.returnValue({afterClosed: () => of(mockSpecData)} as any); component.selectedSpec = mockWorkflowSpec1; - component.selectedSpec.parents = []; component.selectedSpec.libraries = []; component.editWorkflowSpec('study'); expect(openDialogSpy).toHaveBeenCalled(); @@ -177,7 +179,7 @@ describe('WorkflowSpecListComponent', () => { expect(_upsertWorkflowSpecificationSpy).toHaveBeenCalled(); }); - it('should edit an existing workflow spec but add a new workflow spec', () => { + it('should either edit a workflow spec, OR add a new workflow spec', () => { const _addWorkflowSpecSpy = spyOn((component as any), '_addWorkflowSpec').and.stub(); const _updateWorkflowSpecSpy = spyOn((component as any), '_updateWorkflowSpec').and.stub(); @@ -290,7 +292,7 @@ describe('WorkflowSpecListComponent', () => { expect(_upsertWorkflowSpecCategorySpy).toHaveBeenCalled(); }); - it('should edit an existing workflow spec category but add a new workflow spec category', () => { + it('should edit an existing workflow spec category OR add a new workflow spec category', () => { const _addWorkflowSpecCategorySpy = spyOn((component as any), '_addWorkflowSpecCategory').and.stub(); const _updateWorkflowSpecCategorySpy = spyOn((component as any), '_updateWorkflowSpecCategory').and.stub(); @@ -312,13 +314,9 @@ describe('WorkflowSpecListComponent', () => { }; } - - component.selectedCat = undefined; mockWorkflowSpecCategory1.id = null; (component as any)._upsertWorkflowSpecCategory(mockWorkflowSpecCategory1 as WorkflowSpecCategoryDialogData); - expect(_addWorkflowSpecCategorySpy).toHaveBeenCalled(); - expect(_updateWorkflowSpecCategorySpy).not.toHaveBeenCalled(); _addWorkflowSpecCategorySpy.calls.reset(); _updateWorkflowSpecCategorySpy.calls.reset(); @@ -423,7 +421,7 @@ describe('WorkflowSpecListComponent', () => { }); it('should update a single category display order', () => { - mockWorkflowSpecCategory1.id = 5; + mockWorkflowSpecCategory1.id = '5'; // Intermittently, Jasmine does not find the array prototype function, causing errors. // This defines the 'find' function in case it doesn't find it. diff --git a/src/app/workflow-spec-list/workflow-spec-list.component.ts b/src/app/workflow-spec-list/workflow-spec-list.component.ts index 2a9e39b..1f97f51 100644 --- a/src/app/workflow-spec-list/workflow-spec-list.component.ts +++ b/src/app/workflow-spec-list/workflow-spec-list.component.ts @@ -35,7 +35,7 @@ export interface WorkflowSpecCategoryGroup { id?: string; display_name: string; workflow_specs?: WorkflowSpec[]; - display_order: number; + display_order?: number; admin: boolean, } @@ -191,15 +191,10 @@ export class WorkflowSpecListComponent implements OnInit { canDeleteWorkflowSpec(wfs){ - if ((wfs.parents.length > 0) && (wfs.library)){ - let message = ''; - for (let p of wfs.parents) { - message += p.display_name + ', '; - } - message = message.replace(/,\s*$/, ""); - this.snackBar.open('The Library ' + '\'' + wfs.display_name + '\'' + - ' is still being referenced by these workflows: ' + message, 'Ok'); - return false; + // TODO: move this to the backend + // Find if library is still being referenced somewhere. If so, return a message about where + if (wfs.library){ + // return false; } return true; } @@ -336,7 +331,6 @@ export class WorkflowSpecListComponent implements OnInit { if (isNew) { this._addWorkflowSpec(newSpec); - this.selectSpec(newSpec); } else { this._updateWorkflowSpec(data.id, newSpec); } @@ -354,9 +348,10 @@ export class WorkflowSpecListComponent implements OnInit { }; this._updateWorkflowSpecCategory(data.id, newCat); } else { + // TODO: prompt user for somethin about the id generation const newCat: WorkflowSpecCategory = { + id: data.display_name, display_name: data.display_name, - display_order: data.display_order, admin: data.admin, }; this._addWorkflowSpecCategory(newCat); @@ -377,6 +372,7 @@ export class WorkflowSpecListComponent implements OnInit { this._loadWorkflowLibraries(newSpec.id); this._loadWorkflowSpecs(newSpec.id); this._displayMessage('Saved new workflow spec.'); + this.selectSpec(newSpec); }); }