mirror of
https://github.com/DSpace/dspace-angular.git
synced 2025-10-15 14:03:06 +00:00
130 lines
4.9 KiB
TypeScript
130 lines
4.9 KiB
TypeScript
import { NgbCollapseModule } from '@ng-bootstrap/ng-bootstrap';
|
|
import { SubmissionServiceStub } from '../../../shared/testing/submission-service.stub';
|
|
import { SherpaDataResponse } from '../../../shared/mocks/section-sherpa-policies.service.mock';
|
|
import { ComponentFixture, inject, TestBed } from '@angular/core/testing';
|
|
|
|
import { SectionsService } from '../sections.service';
|
|
import { SectionsServiceStub } from '../../../shared/testing/sections-service.stub';
|
|
import { JsonPatchOperationsBuilder } from '../../../core/json-patch/builder/json-patch-operations-builder';
|
|
import { TranslateLoader, TranslateModule } from '@ngx-translate/core';
|
|
import { BrowserModule, By } from '@angular/platform-browser';
|
|
|
|
import { Store } from '@ngrx/store';
|
|
import { AppState } from '../../../app.reducer';
|
|
import { SubmissionSectionSherpaPoliciesComponent } from './section-sherpa-policies.component';
|
|
import { SubmissionService } from '../../submission.service';
|
|
import { DebugElement } from '@angular/core';
|
|
import { TranslateLoaderMock } from '../../../shared/mocks/translate-loader.mock';
|
|
import { of as observableOf } from 'rxjs';
|
|
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
|
|
import { MetadataInformationComponent } from './metadata-information/metadata-information.component';
|
|
import { AlertComponent } from '../../../shared/alert/alert.component';
|
|
import { PublisherPolicyComponent } from './publisher-policy/publisher-policy.component';
|
|
import { PublicationInformationComponent } from './publication-information/publication-information.component';
|
|
import { APP_DATA_SERVICES_MAP } from '../../../../config/app-config.interface';
|
|
|
|
describe('SubmissionSectionSherpaPoliciesComponent', () => {
|
|
let component: SubmissionSectionSherpaPoliciesComponent;
|
|
let fixture: ComponentFixture<SubmissionSectionSherpaPoliciesComponent>;
|
|
let de: DebugElement;
|
|
|
|
const sectionsServiceStub = new SectionsServiceStub();
|
|
|
|
const operationsBuilder = jasmine.createSpyObj('operationsBuilder', {
|
|
add: undefined,
|
|
remove: undefined,
|
|
replace: undefined,
|
|
});
|
|
|
|
const storeStub = jasmine.createSpyObj('store', ['dispatch']);
|
|
|
|
const sectionData = {
|
|
header: 'submit.progressbar.sherpaPolicies',
|
|
config: 'http://localhost:8080/server/api/config/submissionaccessoptions/SherpaPoliciesDefaultConfiguration',
|
|
mandatory: true,
|
|
sectionType: 'sherpaPolicies',
|
|
collapsed: false,
|
|
enabled: true,
|
|
data: SherpaDataResponse,
|
|
errorsToShow: [],
|
|
serverValidationErrors: [],
|
|
isLoading: false,
|
|
isValid: true
|
|
};
|
|
|
|
describe('SubmissionSectionSherpaPoliciesComponent', () => {
|
|
|
|
beforeEach(async () => {
|
|
await TestBed.configureTestingModule({
|
|
imports: [
|
|
BrowserModule,
|
|
NoopAnimationsModule,
|
|
TranslateModule.forRoot({
|
|
loader: {
|
|
provide: TranslateLoader,
|
|
useClass: TranslateLoaderMock
|
|
}
|
|
}),
|
|
NgbCollapseModule,
|
|
SubmissionSectionSherpaPoliciesComponent
|
|
],
|
|
providers: [
|
|
{ provide: SectionsService, useValue: sectionsServiceStub },
|
|
{ provide: JsonPatchOperationsBuilder, useValue: operationsBuilder },
|
|
{ provide: SubmissionService, useValue: SubmissionServiceStub },
|
|
{ provide: Store, useValue: storeStub },
|
|
{ provide: 'sectionDataProvider', useValue: sectionData },
|
|
{ provide: 'submissionIdProvider', useValue: '1508' },
|
|
{ provide: APP_DATA_SERVICES_MAP, useValue: {} },
|
|
]
|
|
})
|
|
.overrideComponent(SubmissionSectionSherpaPoliciesComponent, {
|
|
remove: { imports: [
|
|
MetadataInformationComponent,
|
|
AlertComponent,
|
|
PublisherPolicyComponent,
|
|
PublicationInformationComponent,
|
|
]}
|
|
})
|
|
.compileComponents();
|
|
});
|
|
|
|
beforeEach(inject([Store], (store: Store<AppState>) => {
|
|
fixture = TestBed.createComponent(SubmissionSectionSherpaPoliciesComponent);
|
|
component = fixture.componentInstance;
|
|
de = fixture.debugElement;
|
|
sectionsServiceStub.getSectionData.and.returnValue(observableOf(SherpaDataResponse));
|
|
fixture.detectChanges();
|
|
}));
|
|
|
|
|
|
it('should create', () => {
|
|
expect(component).toBeTruthy();
|
|
});
|
|
|
|
it('should show refresh button', () => {
|
|
expect(de.query(By.css('[data-test="refresh-btn"]'))).toBeTruthy();
|
|
});
|
|
|
|
it('should show publisher information', () => {
|
|
expect(de.query(By.css('ds-publication-information'))).toBeTruthy();
|
|
});
|
|
|
|
it('should show publisher policy', () => {
|
|
expect(de.query(By.css('ds-publisher-policy'))).toBeTruthy();
|
|
});
|
|
|
|
it('should show metadata information', () => {
|
|
expect(de.query(By.css('ds-metadata-information'))).toBeTruthy();
|
|
});
|
|
|
|
it('when refresh button click operationsBuilder.remove should have been called', () => {
|
|
de.query(By.css('[data-test="refresh-btn"]')).nativeElement.click();
|
|
expect(operationsBuilder.remove).toHaveBeenCalled();
|
|
});
|
|
|
|
|
|
});
|
|
|
|
});
|