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; } /*