diff --git a/src/app/page-internal-server-error/page-internal-server-error.component.html b/src/app/page-internal-server-error/page-internal-server-error.component.html
index 4995afc80b..595fd9961b 100644
--- a/src/app/page-internal-server-error/page-internal-server-error.component.html
+++ b/src/app/page-internal-server-error/page-internal-server-error.component.html
@@ -1,6 +1,6 @@
500
-
{{"500.page-internal-server-error" | translate}}
+
{{"500.page-internal-server-error" | translate}}
{{"500.help" | translate}}
diff --git a/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts b/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts
index 1792425798..0ef535bf95 100644
--- a/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts
+++ b/src/app/shared/context-help-wrapper/context-help-wrapper.component.ts
@@ -53,7 +53,7 @@ export class ContextHelpWrapperComponent {
* into link-free pieces of text and objects of the form
* {href: string, text: string} (which represent links).
* This function makes no effort to check whether the href is a
- * correct URL. Currently this function does not support escape
+ * correct URL. Currently, this function does not support escape
* characters: its behavior when given a string containing square
* brackets that do not deliminate a link is undefined.
* Regular parentheses outside of links do work, however.
@@ -66,7 +66,7 @@ export class ContextHelpWrapperComponent {
* " is a link, and ",
* {href: "https://youtube.com", text: "so is this"}
* ]
- */
+ */
private parseLinks(content: string): (string | {href: string, text: string})[] {
// Implementation note: due to unavailability of `matchAll` method on strings,
// separate "split" and "parse" steps are needed.
@@ -93,4 +93,4 @@ export class ContextHelpWrapperComponent {
}
-
+
diff --git a/src/app/shared/context-help.directive.spec.ts b/src/app/shared/context-help.directive.spec.ts
index f00fb9d355..35770b6038 100644
--- a/src/app/shared/context-help.directive.spec.ts
+++ b/src/app/shared/context-help.directive.spec.ts
@@ -1,8 +1,65 @@
-import { ContextHelpDirective } from './context-help.directive';
+import { Component, DebugElement, Input } from '@angular/core';
+import { ComponentFixture, TestBed } from '@angular/core/testing';
+import { By } from '@angular/platform-browser';
+import { of as observableOf, Observable } from 'rxjs';
+import { ContextHelpDirective, ContextHelpDirectiveInput } from './context-help.directive';
+import { TranslateService } from '@ngx-translate/core';
+import { ContextHelpWrapperComponent } from './context-help-wrapper/context-help-wrapper.component';
+import { NgbTooltipModule } from '@ng-bootstrap/ng-bootstrap';
+
+@Component({
+ template: `
some text
`
+})
+class TestComponent {
+ @Input() content = '';
+ contextHelpParams(): ContextHelpDirectiveInput {
+ return {
+ content: this.content
+ };
+ }
+}
+
+// tslint:disable-next-line:max-classes-per-file
+class MockTranslateService {
+ messages: {[index: string]: string} = {
+ lorem: 'lorem ipsum dolor sit amet',
+ linkTest: 'This is text, [this](https://dspace.lyrasis.org) is a link, and [so is this](https://google.com)'
+ };
+
+ get(key: string): Observable
{
+ return observableOf(this.messages[key]);
+ }
+}
describe('ContextHelpDirective', () => {
- it('should create an instance', () => {
- const directive = new ContextHelpDirective();
- expect(directive).toBeTruthy();
+ let component: TestComponent;
+ let fixture: ComponentFixture;
+ // let el: DebugElement;
+ // let translateService: TranslateService;
+
+ beforeEach(() => {
+ console.log('Anyone hear that?');
+ fixture = TestBed.configureTestingModule({
+ imports: [NgbTooltipModule],
+ providers: [
+ { provide: TranslateService, useClass: MockTranslateService }
+ ],
+ declarations: [TestComponent, ContextHelpWrapperComponent, ContextHelpDirective]
+ }).createComponent(TestComponent);
+ component = fixture.componentInstance;
+ });
+
+ it('should add the tooltip icon', () => {
+ component.content = 'lorem';
+ fixture.detectChanges();
+
+ expect(component).toBeDefined();
+ const [wrapper] = fixture.nativeElement.children;
+ const [i, div] = wrapper.children;
+ expect(wrapper.tagName).toBe('DS-CONTEXT-HELP-WRAPPER');
+ expect(i.tagName).toBe('I');
+ expect(div.tagName).toBe('DIV');
+ expect(div.innerHTML).toBe('some text');
+ i.click(); // TODO: triggers a type error
});
});
diff --git a/src/app/shared/context-help.directive.ts b/src/app/shared/context-help.directive.ts
index 4ffa4d24d6..1d8bcccfa7 100644
--- a/src/app/shared/context-help.directive.ts
+++ b/src/app/shared/context-help.directive.ts
@@ -3,10 +3,10 @@ import { PlacementArray } from '@ng-bootstrap/ng-bootstrap/util/positioning';
import { ContextHelpWrapperComponent } from './context-help-wrapper/context-help-wrapper.component';
import { PlacementDir } from './context-help-wrapper/placement-dir.model';
-export type ContextHelpDirectiveInput = {
- content: string,
- tooltipPlacement?: PlacementArray,
- iconPlacement?: PlacementDir
+export interface ContextHelpDirectiveInput {
+ content: string;
+ tooltipPlacement?: PlacementArray;
+ iconPlacement?: PlacementDir;
}
/*