mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-14 05:23:06 +00:00
Added tests
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { ChangeDetectorRef, NO_ERRORS_SCHEMA, SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
import { ChangeDetectorRef, Component, NO_ERRORS_SCHEMA, SimpleChange } from '@angular/core';
|
||||
import { async, ComponentFixture, inject, TestBed } from '@angular/core/testing';
|
||||
import { of as observableOf } from 'rxjs';
|
||||
|
||||
import { SubmissionServiceStub } from '../../shared/testing/submission-service-stub';
|
||||
@@ -9,7 +9,6 @@ import {
|
||||
mockSubmissionCollectionId,
|
||||
mockSubmissionDefinition,
|
||||
mockSubmissionId,
|
||||
mockSubmissionObject,
|
||||
mockSubmissionObjectNew,
|
||||
mockSubmissionSelfUrl,
|
||||
mockSubmissionState
|
||||
@@ -20,6 +19,7 @@ import { HALEndpointService } from '../../core/shared/hal-endpoint.service';
|
||||
import { AuthServiceStub } from '../../shared/testing/auth-service-stub';
|
||||
import { AuthService } from '../../core/auth/auth.service';
|
||||
import { HALEndpointServiceStub } from '../../shared/testing/hal-endpoint-service-stub';
|
||||
import { createTestComponent } from '../../shared/testing/utils';
|
||||
|
||||
describe('SubmissionFormComponent Component', () => {
|
||||
|
||||
@@ -41,124 +41,172 @@ describe('SubmissionFormComponent Component', () => {
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
imports: [],
|
||||
declarations: [SubmissionFormComponent],
|
||||
declarations: [
|
||||
SubmissionFormComponent,
|
||||
TestComponent
|
||||
],
|
||||
providers: [
|
||||
{ provide: AuthService, useClass: AuthServiceStub },
|
||||
{ provide: HALEndpointService, useValue: new HALEndpointServiceStub('workspaceitems') },
|
||||
{ provide: SubmissionService, useClass: SubmissionServiceStub },
|
||||
ChangeDetectorRef
|
||||
ChangeDetectorRef,
|
||||
SubmissionFormComponent
|
||||
],
|
||||
schemas: [NO_ERRORS_SCHEMA]
|
||||
}).compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SubmissionFormComponent);
|
||||
comp = fixture.componentInstance;
|
||||
compAsAny = comp;
|
||||
submissionServiceStub = TestBed.get(SubmissionService);
|
||||
authServiceStub = TestBed.get(AuthService);
|
||||
});
|
||||
describe('', () => {
|
||||
let testComp: TestComponent;
|
||||
let testFixture: ComponentFixture<TestComponent>;
|
||||
|
||||
afterEach(() => {
|
||||
comp = null;
|
||||
compAsAny = null;
|
||||
fixture = null;
|
||||
});
|
||||
// synchronous beforeEach
|
||||
beforeEach(() => {
|
||||
const html = `
|
||||
<ds-submission-submit-form [collectionId]="collectionId"
|
||||
[selfUrl]="selfUrl"
|
||||
[submissionDefinition]="submissionDefinition"
|
||||
[submissionId]="submissionId"></ds-submission-submit-form>`;
|
||||
|
||||
it('should not has effect when collectionId and submissionId are undefined', () => {
|
||||
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(compAsAny.isActive).toBeTruthy();
|
||||
expect(compAsAny.submissionSections).toBeUndefined();
|
||||
comp.loading.subscribe((loading) => {
|
||||
expect(loading).toBeTruthy();
|
||||
testFixture = createTestComponent(html, TestComponent) as ComponentFixture<TestComponent>;
|
||||
testComp = testFixture.componentInstance;
|
||||
});
|
||||
|
||||
expect(compAsAny.subs).toEqual([]);
|
||||
expect(submissionServiceStub.startAutoSave).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should init properly when collectionId and submissionId are defined', () => {
|
||||
comp.collectionId = collectionId;
|
||||
comp.submissionId = submissionId;
|
||||
comp.submissionDefinition = submissionDefinition;
|
||||
comp.selfUrl = selfUrl;
|
||||
comp.sections = sectionsData;
|
||||
|
||||
submissionServiceStub.getSubmissionObject.and.returnValue(observableOf(submissionState));
|
||||
submissionServiceStub.getSubmissionSections.and.returnValue(observableOf(sectionsList));
|
||||
spyOn(authServiceStub, 'buildAuthHeader').and.returnValue('token');
|
||||
|
||||
comp.ngOnChanges({
|
||||
collectionId: new SimpleChange(null, collectionId, true),
|
||||
submissionId: new SimpleChange(null, submissionId, true)
|
||||
});
|
||||
fixture.detectChanges();
|
||||
|
||||
comp.loading.subscribe((loading) => {
|
||||
expect(loading).toBeFalsy();
|
||||
afterEach(() => {
|
||||
testFixture.destroy();
|
||||
});
|
||||
|
||||
comp.submissionSections.subscribe((submissionSections) => {
|
||||
expect(submissionSections).toEqual(sectionsList);
|
||||
it('should create SubmissionFormComponent', inject([SubmissionFormComponent], (app: SubmissionFormComponent) => {
|
||||
|
||||
expect(app).toBeDefined();
|
||||
|
||||
}));
|
||||
});
|
||||
|
||||
describe('', () => {
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(SubmissionFormComponent);
|
||||
comp = fixture.componentInstance;
|
||||
compAsAny = comp;
|
||||
submissionServiceStub = TestBed.get(SubmissionService);
|
||||
authServiceStub = TestBed.get(AuthService);
|
||||
});
|
||||
|
||||
expect(submissionServiceStub.dispatchInit).toHaveBeenCalledWith(
|
||||
collectionId,
|
||||
submissionId,
|
||||
selfUrl,
|
||||
submissionDefinition,
|
||||
sectionsData,
|
||||
null);
|
||||
expect(submissionServiceStub.startAutoSave).toHaveBeenCalled();
|
||||
});
|
||||
afterEach(() => {
|
||||
comp = null;
|
||||
compAsAny = null;
|
||||
fixture = null;
|
||||
});
|
||||
|
||||
it('should update properly on collection change', () => {
|
||||
comp.collectionId = collectionId;
|
||||
comp.submissionId = submissionId;
|
||||
comp.submissionDefinition = submissionDefinition;
|
||||
comp.selfUrl = selfUrl;
|
||||
comp.sections = sectionsData;
|
||||
it('should not has effect when collectionId and submissionId are undefined', () => {
|
||||
|
||||
comp.onCollectionChange(submissionObjectNew);
|
||||
fixture.detectChanges();
|
||||
|
||||
fixture.detectChanges();
|
||||
expect(compAsAny.isActive).toBeTruthy();
|
||||
expect(compAsAny.submissionSections).toBeUndefined();
|
||||
comp.loading.subscribe((loading) => {
|
||||
expect(loading).toBeTruthy();
|
||||
});
|
||||
|
||||
expect(comp.collectionId).toEqual(submissionObjectNew.collection.id);
|
||||
expect(comp.submissionDefinition).toEqual(submissionObjectNew.submissionDefinition);
|
||||
expect(comp.definitionId).toEqual(submissionObjectNew.submissionDefinition.name);
|
||||
expect(comp.sections).toEqual(submissionObjectNew.sections);
|
||||
expect(compAsAny.subs).toEqual([]);
|
||||
expect(submissionServiceStub.startAutoSave).not.toHaveBeenCalled();
|
||||
});
|
||||
|
||||
expect(submissionServiceStub.resetSubmissionObject).toHaveBeenCalledWith(
|
||||
submissionObjectNew.collection.id,
|
||||
submissionId,
|
||||
selfUrl,
|
||||
submissionObjectNew.submissionDefinition,
|
||||
submissionObjectNew.sections);
|
||||
});
|
||||
it('should init properly when collectionId and submissionId are defined', () => {
|
||||
comp.collectionId = collectionId;
|
||||
comp.submissionId = submissionId;
|
||||
comp.submissionDefinition = submissionDefinition;
|
||||
comp.selfUrl = selfUrl;
|
||||
comp.sections = sectionsData;
|
||||
|
||||
it('should update only collection id on collection change when submission definition is not changed', () => {
|
||||
comp.collectionId = collectionId;
|
||||
comp.submissionId = submissionId;
|
||||
comp.definitionId = 'traditional';
|
||||
comp.submissionDefinition = submissionDefinition;
|
||||
comp.selfUrl = selfUrl;
|
||||
comp.sections = sectionsData;
|
||||
submissionServiceStub.getSubmissionObject.and.returnValue(observableOf(submissionState));
|
||||
submissionServiceStub.getSubmissionSections.and.returnValue(observableOf(sectionsList));
|
||||
spyOn(authServiceStub, 'buildAuthHeader').and.returnValue('token');
|
||||
|
||||
comp.onCollectionChange({
|
||||
collection: {
|
||||
id: '45f2f3f1-ba1f-4f36-908a-3f1ea9a557eb'
|
||||
},
|
||||
submissionDefinition: {
|
||||
name: 'traditional'
|
||||
}
|
||||
} as any);
|
||||
comp.ngOnChanges({
|
||||
collectionId: new SimpleChange(null, collectionId, true),
|
||||
submissionId: new SimpleChange(null, submissionId, true)
|
||||
});
|
||||
fixture.detectChanges();
|
||||
|
||||
fixture.detectChanges();
|
||||
comp.loading.subscribe((loading) => {
|
||||
expect(loading).toBeFalsy();
|
||||
});
|
||||
|
||||
comp.submissionSections.subscribe((submissionSections) => {
|
||||
expect(submissionSections).toEqual(sectionsList);
|
||||
});
|
||||
|
||||
expect(submissionServiceStub.dispatchInit).toHaveBeenCalledWith(
|
||||
collectionId,
|
||||
submissionId,
|
||||
selfUrl,
|
||||
submissionDefinition,
|
||||
sectionsData,
|
||||
null);
|
||||
expect(submissionServiceStub.startAutoSave).toHaveBeenCalled();
|
||||
});
|
||||
|
||||
it('should update properly on collection change', () => {
|
||||
comp.collectionId = collectionId;
|
||||
comp.submissionId = submissionId;
|
||||
comp.submissionDefinition = submissionDefinition;
|
||||
comp.selfUrl = selfUrl;
|
||||
comp.sections = sectionsData;
|
||||
|
||||
comp.onCollectionChange(submissionObjectNew);
|
||||
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(comp.collectionId).toEqual(submissionObjectNew.collection.id);
|
||||
expect(comp.submissionDefinition).toEqual(submissionObjectNew.submissionDefinition);
|
||||
expect(comp.definitionId).toEqual(submissionObjectNew.submissionDefinition.name);
|
||||
expect(comp.sections).toEqual(submissionObjectNew.sections);
|
||||
|
||||
expect(submissionServiceStub.resetSubmissionObject).toHaveBeenCalledWith(
|
||||
submissionObjectNew.collection.id,
|
||||
submissionId,
|
||||
selfUrl,
|
||||
submissionObjectNew.submissionDefinition,
|
||||
submissionObjectNew.sections);
|
||||
});
|
||||
|
||||
it('should update only collection id on collection change when submission definition is not changed', () => {
|
||||
comp.collectionId = collectionId;
|
||||
comp.submissionId = submissionId;
|
||||
comp.definitionId = 'traditional';
|
||||
comp.submissionDefinition = submissionDefinition;
|
||||
comp.selfUrl = selfUrl;
|
||||
comp.sections = sectionsData;
|
||||
|
||||
comp.onCollectionChange({
|
||||
collection: {
|
||||
id: '45f2f3f1-ba1f-4f36-908a-3f1ea9a557eb'
|
||||
},
|
||||
submissionDefinition: {
|
||||
name: 'traditional'
|
||||
}
|
||||
} as any);
|
||||
|
||||
fixture.detectChanges();
|
||||
|
||||
expect(comp.collectionId).toEqual('45f2f3f1-ba1f-4f36-908a-3f1ea9a557eb');
|
||||
expect(submissionServiceStub.resetSubmissionObject).not.toHaveBeenCalled()
|
||||
});
|
||||
|
||||
expect(comp.collectionId).toEqual('45f2f3f1-ba1f-4f36-908a-3f1ea9a557eb');
|
||||
expect(submissionServiceStub.resetSubmissionObject).not.toHaveBeenCalled()
|
||||
});
|
||||
});
|
||||
|
||||
// declare a test component
|
||||
@Component({
|
||||
selector: 'ds-test-cmp',
|
||||
template: ``
|
||||
})
|
||||
class TestComponent {
|
||||
|
||||
collectionId = mockSubmissionCollectionId;
|
||||
selfUrl = mockSubmissionSelfUrl;
|
||||
submissionDefinition = mockSubmissionDefinition;
|
||||
submissionId = mockSubmissionId;
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user