From 3e51fd85980904da61367b9ed373711e62ae6fd7 Mon Sep 17 00:00:00 2001
From: lotte <lotte_hofstede@hotmail.com>
Date: Fri, 10 Jan 2020 16:36:47 +0100
Subject: [PATCH] fixed test issue

---
 .../upload/section-upload.component.spec.ts   | 91 ++++++++++---------
 .../upload/section-upload.component.ts        |  4 +-
 2 files changed, 51 insertions(+), 44 deletions(-)

diff --git a/src/app/submission/sections/upload/section-upload.component.spec.ts b/src/app/submission/sections/upload/section-upload.component.spec.ts
index 3a512c05c0..a96dc3b32a 100644
--- a/src/app/submission/sections/upload/section-upload.component.spec.ts
+++ b/src/app/submission/sections/upload/section-upload.component.spec.ts
@@ -5,6 +5,7 @@ import { TranslateModule } from '@ngx-translate/core';
 import { of as observableOf } from 'rxjs';
 
 import { createSuccessfulRemoteDataObject$, createTestComponent } from '../../../shared/testing/utils';
+import { SubmissionObjectState } from '../../objects/submission-objects.reducer';
 import { SubmissionService } from '../../submission.service';
 import { SubmissionServiceStub } from '../../../shared/testing/submission-service-stub';
 import { SectionsService } from '../sections.service';
@@ -18,8 +19,7 @@ import {
   mockSubmissionId,
   mockSubmissionState,
   mockUploadConfigResponse,
-  mockUploadConfigResponseNotRequired,
-  mockUploadFiles
+  mockUploadConfigResponseNotRequired, mockUploadFiles,
 } from '../../../shared/mocks/mock-submission';
 import { BrowserModule } from '@angular/platform-browser';
 import { CommonModule } from '@angular/common';
@@ -32,7 +32,6 @@ import { cold, hot } from 'jasmine-marbles';
 import { Collection } from '../../../core/shared/collection.model';
 import { ResourcePolicy } from '../../../core/shared/resource-policy.model';
 import { ResourcePolicyService } from '../../../core/data/resource-policy.service';
-import { RemoteData } from '../../../core/data/remote-data';
 import { ConfigData } from '../../../core/config/config-data';
 import { PageInfo } from '../../../core/shared/page-info.model';
 import { Group } from '../../../core/eperson/models/group.model';
@@ -66,17 +65,7 @@ function getMockResourcePolicyService(): ResourcePolicyService {
   });
 }
 
-const sectionObject: SectionDataObject = {
-  config: 'https://dspace7.4science.it/or2018/api/config/submissionforms/upload',
-  mandatory: true,
-  data: {
-    files: []
-  },
-  errors: [],
-  header: 'submit.progressbar.describe.upload',
-  id: 'upload',
-  sectionType: SectionsType.Upload
-};
+let sectionObject: SectionDataObject;
 
 describe('SubmissionSectionUploadComponent test suite', () => {
 
@@ -91,30 +80,48 @@ describe('SubmissionSectionUploadComponent test suite', () => {
   let uploadsConfigService: any;
   let bitstreamService: any;
 
-  const submissionId = mockSubmissionId;
-  const collectionId = mockSubmissionCollectionId;
-  const submissionState = Object.assign({}, mockSubmissionState[mockSubmissionId]);
-  const mockCollection = Object.assign(new Collection(), {
-    name: 'Community 1-Collection 1',
-    id: collectionId,
-    metadata: [
-      {
-        key: 'dc.title',
-        language: 'en_US',
-        value: 'Community 1-Collection 1'
-      }],
-    _links: {
-      defaultAccessConditions: collectionId + '/defaultAccessConditions'
-    }
-  });
-  const mockDefaultAccessCondition = Object.assign(new ResourcePolicy(), {
-    name: null,
-    groupUUID: '11cc35e5-a11d-4b64-b5b9-0052a5d15509',
-    id: 20,
-    uuid: 'resource-policy-20'
-  });
+  let submissionId: string;
+  let collectionId: string;
+  let submissionState: SubmissionObjectState;
+  let mockCollection: Collection;
+  let mockDefaultAccessCondition: ResourcePolicy;
 
   beforeEach(async(() => {
+    sectionObject = {
+      config: 'https://dspace7.4science.it/or2018/api/config/submissionforms/upload',
+      mandatory: true,
+      data: {
+        files: []
+      },
+      errors: [],
+      header: 'submit.progressbar.describe.upload',
+      id: 'upload',
+      sectionType: SectionsType.Upload
+    };
+    submissionId = mockSubmissionId;
+    collectionId = mockSubmissionCollectionId;
+    submissionState = Object.assign({}, mockSubmissionState[mockSubmissionId]) as any;
+    mockCollection = Object.assign(new Collection(), {
+      name: 'Community 1-Collection 1',
+      id: collectionId,
+      metadata: [
+        {
+          key: 'dc.title',
+          language: 'en_US',
+          value: 'Community 1-Collection 1'
+        }],
+      _links: {
+        defaultAccessConditions: collectionId + '/defaultAccessConditions'
+      }
+    });
+
+    mockDefaultAccessCondition = Object.assign(new ResourcePolicy(), {
+      name: null,
+      groupUUID: '11cc35e5-a11d-4b64-b5b9-0052a5d15509',
+      id: 20,
+      uuid: 'resource-policy-20'
+    });
+
     TestBed.configureTestingModule({
       imports: [
         BrowserModule,
@@ -207,7 +214,7 @@ describe('SubmissionSectionUploadComponent test suite', () => {
 
       comp.onSectionInit();
 
-      const expectedGroupsMap =  new Map([
+      const expectedGroupsMap = new Map([
         [mockUploadConfigResponse.accessConditionOptions[1].name, [mockGroup as any]],
         [mockUploadConfigResponse.accessConditionOptions[2].name, [mockGroup as any]],
       ]);
@@ -247,7 +254,7 @@ describe('SubmissionSectionUploadComponent test suite', () => {
 
       comp.onSectionInit();
 
-      const expectedGroupsMap =  new Map([
+      const expectedGroupsMap = new Map([
         [mockUploadConfigResponse.accessConditionOptions[1].name, [mockGroup as any]],
         [mockUploadConfigResponse.accessConditionOptions[2].name, [mockGroup as any]],
       ]);
@@ -282,13 +289,13 @@ describe('SubmissionSectionUploadComponent test suite', () => {
         createSuccessfulRemoteDataObject$(Object.assign(new Group(), mockGroup))
       );
 
-      comp.onSectionInit();
-
       bitstreamService.getUploadedFileList.and.returnValue(hot('-a-b', {
         a: [],
         b: mockUploadFiles
       }));
 
+      comp.onSectionInit();
+
       expect(comp.required).toBe(true);
 
       expect(compAsAny.getSectionStatus()).toBeObservable(cold('-c-d', {
@@ -313,13 +320,13 @@ describe('SubmissionSectionUploadComponent test suite', () => {
         createSuccessfulRemoteDataObject$(Object.assign(new Group(), mockGroup))
       );
 
-      comp.onSectionInit();
-
       bitstreamService.getUploadedFileList.and.returnValue(hot('-a-b', {
         a: [],
         b: mockUploadFiles
       }));
 
+      comp.onSectionInit();
+
       expect(comp.required).toBe(false);
 
       expect(compAsAny.getSectionStatus()).toBeObservable(cold('-c-d', {
diff --git a/src/app/submission/sections/upload/section-upload.component.ts b/src/app/submission/sections/upload/section-upload.component.ts
index 24bb658d71..b4c2a9b30b 100644
--- a/src/app/submission/sections/upload/section-upload.component.ts
+++ b/src/app/submission/sections/upload/section-upload.component.ts
@@ -1,6 +1,6 @@
 import { ChangeDetectorRef, Component, Inject } from '@angular/core';
 
-import { combineLatest, Observable, Subscription } from 'rxjs';
+import { combineLatest as observableCombineLatest, Observable, Subscription } from 'rxjs';
 import { distinctUntilChanged, filter, find, flatMap, map, reduce, take, tap } from 'rxjs/operators';
 
 import { SectionModelComponent } from '../models/section.model';
@@ -228,7 +228,7 @@ export class SubmissionSectionUploadComponent extends SectionModelComponent {
       }),
 
       // retrieve submission's bitstreams from state
-      combineLatest(this.configMetadataForm$,
+      observableCombineLatest(this.configMetadataForm$,
         this.bitstreamService.getUploadedFileList(this.submissionId, this.sectionData.id)).pipe(
         filter(([configMetadataForm, fileList]: [SubmissionFormsModel, any[]]) => {
           return isNotEmpty(configMetadataForm) && isNotUndefined(fileList)
-- 
GitLab