79219: Remove -e option from MetadataImportPageComponent

This commit is contained in:
Bruno Roemers
2021-05-04 11:08:55 +02:00
parent eb3cd85680
commit 93450e1dcf
2 changed files with 9 additions and 44 deletions

View File

@@ -6,10 +6,7 @@ import { By } from '@angular/platform-browser';
import { Router } from '@angular/router'; import { Router } from '@angular/router';
import { RouterTestingModule } from '@angular/router/testing'; import { RouterTestingModule } from '@angular/router/testing';
import { TranslateModule } from '@ngx-translate/core'; import { TranslateModule } from '@ngx-translate/core';
import { of as observableOf } from 'rxjs';
import { AuthService } from '../../core/auth/auth.service';
import { METADATA_IMPORT_SCRIPT_NAME, ScriptDataService } from '../../core/data/processes/script-data.service'; import { METADATA_IMPORT_SCRIPT_NAME, ScriptDataService } from '../../core/data/processes/script-data.service';
import { EPerson } from '../../core/eperson/models/eperson.model';
import { ProcessParameter } from '../../process-page/processes/process-parameter.model'; import { ProcessParameter } from '../../process-page/processes/process-parameter.model';
import { NotificationsService } from '../../shared/notifications/notifications.service'; import { NotificationsService } from '../../shared/notifications/notifications.service';
import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub'; import { NotificationsServiceStub } from '../../shared/testing/notifications-service.stub';
@@ -22,12 +19,9 @@ describe('MetadataImportPageComponent', () => {
let comp: MetadataImportPageComponent; let comp: MetadataImportPageComponent;
let fixture: ComponentFixture<MetadataImportPageComponent>; let fixture: ComponentFixture<MetadataImportPageComponent>;
let user;
let notificationService: NotificationsServiceStub; let notificationService: NotificationsServiceStub;
let scriptService: any; let scriptService: any;
let router; let router;
let authService;
let locationStub; let locationStub;
function init() { function init() {
@@ -37,13 +31,6 @@ describe('MetadataImportPageComponent', () => {
invoke: createSuccessfulRemoteDataObject$({ processId: '45' }) invoke: createSuccessfulRemoteDataObject$({ processId: '45' })
} }
); );
user = Object.assign(new EPerson(), {
id: 'userId',
email: 'user@test.com'
});
authService = jasmine.createSpyObj('authService', {
getAuthenticatedUserFromStore: observableOf(user)
});
router = jasmine.createSpyObj('router', { router = jasmine.createSpyObj('router', {
navigateByUrl: jasmine.createSpy('navigateByUrl') navigateByUrl: jasmine.createSpy('navigateByUrl')
}); });
@@ -65,7 +52,6 @@ describe('MetadataImportPageComponent', () => {
{ provide: NotificationsService, useValue: notificationService }, { provide: NotificationsService, useValue: notificationService },
{ provide: ScriptDataService, useValue: scriptService }, { provide: ScriptDataService, useValue: scriptService },
{ provide: Router, useValue: router }, { provide: Router, useValue: router },
{ provide: AuthService, useValue: authService },
{ provide: Location, useValue: locationStub }, { provide: Location, useValue: locationStub },
], ],
schemas: [NO_ERRORS_SCHEMA] schemas: [NO_ERRORS_SCHEMA]
@@ -107,9 +93,8 @@ describe('MetadataImportPageComponent', () => {
proceed.click(); proceed.click();
fixture.detectChanges(); fixture.detectChanges();
})); }));
it('metadata-import script is invoked with its -e currentUserEmail, -f fileName and the mockFile', () => { it('metadata-import script is invoked with -f fileName and the mockFile', () => {
const parameterValues: ProcessParameter[] = [ const parameterValues: ProcessParameter[] = [
Object.assign(new ProcessParameter(), { name: '-e', value: user.email }),
Object.assign(new ProcessParameter(), { name: '-f', value: 'filename.txt' }), Object.assign(new ProcessParameter(), { name: '-f', value: 'filename.txt' }),
]; ];
expect(scriptService.invoke).toHaveBeenCalledWith(METADATA_IMPORT_SCRIPT_NAME, parameterValues, [fileMock]); expect(scriptService.invoke).toHaveBeenCalledWith(METADATA_IMPORT_SCRIPT_NAME, parameterValues, [fileMock]);

View File

@@ -23,20 +23,14 @@ import { getProcessDetailRoute } from '../../process-page/process-page-routing.p
/** /**
* Component that represents a metadata import page for administrators * Component that represents a metadata import page for administrators
*/ */
export class MetadataImportPageComponent implements OnInit { export class MetadataImportPageComponent {
/** /**
* The current value of the file * The current value of the file
*/ */
fileObject: File; fileObject: File;
/** public constructor(private location: Location,
* The authenticated user's email
*/
private currentUserEmail$: Observable<string>;
public constructor(protected authService: AuthService,
private location: Location,
protected translate: TranslateService, protected translate: TranslateService,
protected notificationsService: NotificationsService, protected notificationsService: NotificationsService,
private scriptDataService: ScriptDataService, private scriptDataService: ScriptDataService,
@@ -51,15 +45,6 @@ export class MetadataImportPageComponent implements OnInit {
this.fileObject = file; this.fileObject = file;
} }
/**
* Method provided by Angular. Invoked after the constructor.
*/
ngOnInit() {
this.currentUserEmail$ = this.authService.getAuthenticatedUserFromStore().pipe(
map((user: EPerson) => user.email)
);
}
/** /**
* When return button is pressed go to previous location * When return button is pressed go to previous location
*/ */
@@ -68,22 +53,17 @@ export class MetadataImportPageComponent implements OnInit {
} }
/** /**
* Starts import-metadata script with -e currentUserEmail -f fileName (and the selected file) * Starts import-metadata script with -f fileName (and the selected file)
*/ */
public importMetadata() { public importMetadata() {
if (this.fileObject == null) { if (this.fileObject == null) {
this.notificationsService.error(this.translate.get('admin.metadata-import.page.error.addFile')); this.notificationsService.error(this.translate.get('admin.metadata-import.page.error.addFile'));
} else { } else {
this.currentUserEmail$.pipe(
switchMap((email: string) => {
if (isNotEmpty(email)) {
const parameterValues: ProcessParameter[] = [ const parameterValues: ProcessParameter[] = [
Object.assign(new ProcessParameter(), { name: '-e', value: email }),
Object.assign(new ProcessParameter(), { name: '-f', value: this.fileObject.name }), Object.assign(new ProcessParameter(), { name: '-f', value: this.fileObject.name }),
]; ];
return this.scriptDataService.invoke(METADATA_IMPORT_SCRIPT_NAME, parameterValues, [this.fileObject]);
} this.scriptDataService.invoke(METADATA_IMPORT_SCRIPT_NAME, parameterValues, [this.fileObject]).pipe(
}),
getFirstCompletedRemoteData(), getFirstCompletedRemoteData(),
).subscribe((rd: RemoteData<Process>) => { ).subscribe((rd: RemoteData<Process>) => {
if (rd.hasSucceeded) { if (rd.hasSucceeded) {