diff --git a/src/app/item-page/field-components/metadata-uri-values/metadata-uri-values.component.spec.ts b/src/app/item-page/field-components/metadata-uri-values/metadata-uri-values.component.spec.ts index c35256e9aa..f869ab8aaf 100644 --- a/src/app/item-page/field-components/metadata-uri-values/metadata-uri-values.component.spec.ts +++ b/src/app/item-page/field-components/metadata-uri-values/metadata-uri-values.component.spec.ts @@ -6,6 +6,8 @@ import { By } from '@angular/platform-browser'; import { MetadataUriValuesComponent } from './metadata-uri-values.component'; import { isNotEmpty } from '../../../shared/empty.util'; import { MetadataValue } from '../../../core/shared/metadata.models'; +import { APP_CONFIG } from '../../../../config/app-config.interface'; +import { environment } from '../../../../environments/environment'; let comp: MetadataUriValuesComponent; let fixture: ComponentFixture; @@ -33,6 +35,9 @@ describe('MetadataUriValuesComponent', () => { useClass: TranslateLoaderMock } })], + providers: [ + { provide: APP_CONFIG, useValue: environment }, + ], declarations: [MetadataUriValuesComponent], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(MetadataUriValuesComponent, { diff --git a/src/app/item-page/field-components/metadata-values/metadata-values.component.spec.ts b/src/app/item-page/field-components/metadata-values/metadata-values.component.spec.ts index cde935fc11..9e599b1294 100644 --- a/src/app/item-page/field-components/metadata-values/metadata-values.component.spec.ts +++ b/src/app/item-page/field-components/metadata-values/metadata-values.component.spec.ts @@ -5,6 +5,8 @@ import { TranslateLoaderMock } from '../../../shared/mocks/translate-loader.mock import { MetadataValuesComponent } from './metadata-values.component'; import { By } from '@angular/platform-browser'; import { MetadataValue } from '../../../core/shared/metadata.models'; +import { APP_CONFIG } from '../../../../config/app-config.interface'; +import { environment } from '../../../../environments/environment'; let comp: MetadataValuesComponent; let fixture: ComponentFixture; @@ -32,8 +34,11 @@ describe('MetadataValuesComponent', () => { loader: { provide: TranslateLoader, useClass: TranslateLoaderMock - } + }, })], + providers: [ + { provide: APP_CONFIG, useValue: environment }, + ], declarations: [MetadataValuesComponent], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(MetadataValuesComponent, { diff --git a/src/app/item-page/field-components/metadata-values/metadata-values.component.ts b/src/app/item-page/field-components/metadata-values/metadata-values.component.ts index bc408f805b..3f0c918796 100644 --- a/src/app/item-page/field-components/metadata-values/metadata-values.component.ts +++ b/src/app/item-page/field-components/metadata-values/metadata-values.component.ts @@ -1,6 +1,6 @@ -import { Component, Input, OnChanges, SimpleChanges } from '@angular/core'; +import { Component, Inject, Input, OnChanges, SimpleChanges } from '@angular/core'; import { MetadataValue } from '../../../core/shared/metadata.models'; -import { environment } from '../../../../environments/environment'; +import { APP_CONFIG, AppConfig } from '../../../../config/app-config.interface'; /** * This component renders the configured 'values' into the ds-metadata-field-wrapper component. @@ -13,6 +13,11 @@ import { environment } from '../../../../environments/environment'; }) export class MetadataValuesComponent implements OnChanges { + constructor( + @Inject(APP_CONFIG) private appConfig: AppConfig, + ) { + } + /** * The metadata values to display */ @@ -41,6 +46,6 @@ export class MetadataValuesComponent implements OnChanges { renderMarkdown; ngOnChanges(changes: SimpleChanges): void { - this.renderMarkdown = !!environment.markdown.enabled && this.enableMarkdown; + this.renderMarkdown = !!this.appConfig.markdown.enabled && this.enableMarkdown; } } diff --git a/src/app/item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component.spec.ts b/src/app/item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component.spec.ts index e03ec39d1a..53f0522f39 100644 --- a/src/app/item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component.spec.ts +++ b/src/app/item-page/simple/field-components/specific-field/abstract/item-page-abstract-field.component.spec.ts @@ -3,16 +3,14 @@ import { ChangeDetectionStrategy, NO_ERRORS_SCHEMA } from '@angular/core'; import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { ItemPageAbstractFieldComponent } from './item-page-abstract-field.component'; import { TranslateLoaderMock } from '../../../../../shared/testing/translate-loader.mock'; -import { MetadataValuesComponent } from '../../../../field-components/metadata-values/metadata-values.component'; -import { mockItemWithMetadataFieldAndValue } from '../item-page-field.component.spec'; import { SharedModule } from '../../../../../shared/shared.module'; +import { APP_CONFIG } from '../../../../../../config/app-config.interface'; +import { environment } from '../../../../../../environments/environment'; +import { By } from '@angular/platform-browser'; let comp: ItemPageAbstractFieldComponent; let fixture: ComponentFixture; -const mockField = 'dc.description.abstract'; -const mockValue = 'test value'; - describe('ItemPageAbstractFieldComponent', () => { beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ @@ -25,7 +23,10 @@ describe('ItemPageAbstractFieldComponent', () => { }), SharedModule, ], - declarations: [ItemPageAbstractFieldComponent, MetadataValuesComponent], + providers: [ + { provide: APP_CONFIG, useValue: environment }, + ], + declarations: [ItemPageAbstractFieldComponent], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(ItemPageAbstractFieldComponent, { set: { changeDetection: ChangeDetectionStrategy.Default } @@ -33,13 +34,13 @@ describe('ItemPageAbstractFieldComponent', () => { })); beforeEach(waitForAsync(() => { + fixture = TestBed.createComponent(ItemPageAbstractFieldComponent); comp = fixture.componentInstance; - comp.item = mockItemWithMetadataFieldAndValue(mockField, mockValue); fixture.detectChanges(); })); - it('should display display the correct metadata value', () => { - expect(fixture.nativeElement.innerHTML).toContain(mockValue); + it('should render a ds-metadata-values', () => { + expect(fixture.debugElement.query(By.css('ds-metadata-values'))).toBeDefined(); }); }); diff --git a/src/app/item-page/simple/field-components/specific-field/author/item-page-author-field.component.spec.ts b/src/app/item-page/simple/field-components/specific-field/author/item-page-author-field.component.spec.ts index bbe70aa542..7f8d6fb812 100644 --- a/src/app/item-page/simple/field-components/specific-field/author/item-page-author-field.component.spec.ts +++ b/src/app/item-page/simple/field-components/specific-field/author/item-page-author-field.component.spec.ts @@ -5,6 +5,8 @@ import { TranslateLoaderMock } from '../../../../../shared/testing/translate-loa import { MetadataValuesComponent } from '../../../../field-components/metadata-values/metadata-values.component'; import { mockItemWithMetadataFieldAndValue } from '../item-page-field.component.spec'; import { ItemPageAuthorFieldComponent } from './item-page-author-field.component'; +import { APP_CONFIG } from '../../../../../../config/app-config.interface'; +import { environment } from '../../../../../../environments/environment'; let comp: ItemPageAuthorFieldComponent; let fixture: ComponentFixture; @@ -21,6 +23,9 @@ describe('ItemPageAuthorFieldComponent', () => { useClass: TranslateLoaderMock } })], + providers: [ + { provide: APP_CONFIG, useValue: environment }, + ], declarations: [ItemPageAuthorFieldComponent, MetadataValuesComponent], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(ItemPageAuthorFieldComponent, { diff --git a/src/app/item-page/simple/field-components/specific-field/date/item-page-date-field.component.spec.ts b/src/app/item-page/simple/field-components/specific-field/date/item-page-date-field.component.spec.ts index d55c94a871..ebd37e8b8a 100644 --- a/src/app/item-page/simple/field-components/specific-field/date/item-page-date-field.component.spec.ts +++ b/src/app/item-page/simple/field-components/specific-field/date/item-page-date-field.component.spec.ts @@ -5,6 +5,8 @@ import { TranslateLoaderMock } from '../../../../../shared/testing/translate-loa import { MetadataValuesComponent } from '../../../../field-components/metadata-values/metadata-values.component'; import { mockItemWithMetadataFieldAndValue } from '../item-page-field.component.spec'; import { ItemPageDateFieldComponent } from './item-page-date-field.component'; +import { APP_CONFIG } from '../../../../../../config/app-config.interface'; +import { environment } from '../../../../../../environments/environment'; let comp: ItemPageDateFieldComponent; let fixture: ComponentFixture; @@ -21,6 +23,9 @@ describe('ItemPageDateFieldComponent', () => { useClass: TranslateLoaderMock } })], + providers: [ + { provide: APP_CONFIG, useValue: environment }, + ], declarations: [ItemPageDateFieldComponent, MetadataValuesComponent], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(ItemPageDateFieldComponent, { diff --git a/src/app/item-page/simple/field-components/specific-field/generic/generic-item-page-field.component.spec.ts b/src/app/item-page/simple/field-components/specific-field/generic/generic-item-page-field.component.spec.ts index fd380c1833..f055101f2a 100644 --- a/src/app/item-page/simple/field-components/specific-field/generic/generic-item-page-field.component.spec.ts +++ b/src/app/item-page/simple/field-components/specific-field/generic/generic-item-page-field.component.spec.ts @@ -5,6 +5,8 @@ import { TranslateLoaderMock } from '../../../../../shared/testing/translate-loa import { MetadataValuesComponent } from '../../../../field-components/metadata-values/metadata-values.component'; import { mockItemWithMetadataFieldAndValue } from '../item-page-field.component.spec'; import { GenericItemPageFieldComponent } from './generic-item-page-field.component'; +import { APP_CONFIG } from '../../../../../../config/app-config.interface'; +import { environment } from '../../../../../../environments/environment'; let comp: GenericItemPageFieldComponent; let fixture: ComponentFixture; @@ -23,6 +25,9 @@ describe('GenericItemPageFieldComponent', () => { useClass: TranslateLoaderMock } })], + providers: [ + { provide: APP_CONFIG, useValue: environment }, + ], declarations: [GenericItemPageFieldComponent, MetadataValuesComponent], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(GenericItemPageFieldComponent, { diff --git a/src/app/item-page/simple/field-components/specific-field/item-page-field.component.spec.ts b/src/app/item-page/simple/field-components/specific-field/item-page-field.component.spec.ts index 05856a1f89..e41fd1b8a7 100644 --- a/src/app/item-page/simple/field-components/specific-field/item-page-field.component.spec.ts +++ b/src/app/item-page/simple/field-components/specific-field/item-page-field.component.spec.ts @@ -23,8 +23,16 @@ const mockLabel = 'test label'; const mockFields = [mockField]; describe('ItemPageFieldComponent', () => { - beforeEach(waitForAsync(() => { - TestBed.configureTestingModule({ + + let appConfig = Object.assign({}, environment, { + markdown: { + enabled: false, + mathjax: false, + } + }); + + const buildTestEnvironment = async () => { + await TestBed.configureTestingModule({ imports: [ TranslateModule.forRoot({ loader: { @@ -35,7 +43,7 @@ describe('ItemPageFieldComponent', () => { SharedModule, ], providers: [ - { provide: APP_CONFIG, useValue: Object.assign({}, environment) }, + { provide: APP_CONFIG, useValue: appConfig }, ], declarations: [ItemPageFieldComponent, MetadataValuesComponent], schemas: [NO_ERRORS_SCHEMA] @@ -43,26 +51,25 @@ describe('ItemPageFieldComponent', () => { set: { changeDetection: ChangeDetectionStrategy.Default } }).compileComponents(); markdownSpy = spyOn(MarkdownPipe.prototype, 'transform'); - })); - - beforeEach(waitForAsync(() => { fixture = TestBed.createComponent(ItemPageFieldComponent); comp = fixture.componentInstance; comp.item = mockItemWithMetadataFieldAndValue(mockField, mockValue); comp.fields = mockFields; comp.label = mockLabel; fixture.detectChanges(); - })); + }; - it('should display display the correct metadata value', () => { + it('should display display the correct metadata value', waitForAsync(async () => { + await buildTestEnvironment(); expect(fixture.nativeElement.innerHTML).toContain(mockValue); - }); + })); describe('when markdown is disabled in the environment config', () => { - beforeEach(() => { - TestBed.inject(APP_CONFIG).markdown.enabled = false; - }); + beforeEach(waitForAsync(async () => { + appConfig.markdown.enabled = false; + await buildTestEnvironment(); + })); describe('and markdown is disabled in this component', () => { @@ -91,9 +98,10 @@ describe('ItemPageFieldComponent', () => { describe('when markdown is enabled in the environment config', () => { - beforeEach(() => { - TestBed.inject(APP_CONFIG).markdown.enabled = true; - }); + beforeEach(waitForAsync(async () => { + appConfig.markdown.enabled = true; + await buildTestEnvironment(); + })); describe('and markdown is disabled in this component', () => { diff --git a/src/app/item-page/simple/field-components/specific-field/uri/item-page-uri-field.component.spec.ts b/src/app/item-page/simple/field-components/specific-field/uri/item-page-uri-field.component.spec.ts index 2889dadcc7..7c766252a3 100644 --- a/src/app/item-page/simple/field-components/specific-field/uri/item-page-uri-field.component.spec.ts +++ b/src/app/item-page/simple/field-components/specific-field/uri/item-page-uri-field.component.spec.ts @@ -5,6 +5,8 @@ import { TranslateLoaderMock } from '../../../../../shared/testing/translate-loa import { mockItemWithMetadataFieldAndValue } from '../item-page-field.component.spec'; import { ItemPageUriFieldComponent } from './item-page-uri-field.component'; import { MetadataUriValuesComponent } from '../../../../field-components/metadata-uri-values/metadata-uri-values.component'; +import { environment } from '../../../../../../environments/environment'; +import { APP_CONFIG } from '../../../../../../config/app-config.interface'; let comp: ItemPageUriFieldComponent; let fixture: ComponentFixture; @@ -22,6 +24,9 @@ describe('ItemPageUriFieldComponent', () => { useClass: TranslateLoaderMock } })], + providers: [ + { provide: APP_CONFIG, useValue: environment }, + ], declarations: [ItemPageUriFieldComponent, MetadataUriValuesComponent], schemas: [NO_ERRORS_SCHEMA] }).overrideComponent(ItemPageUriFieldComponent, {