From 9c444764a19895acb4bb7c45a5d31adfe346890d Mon Sep 17 00:00:00 2001 From: Antoine Snyers Date: Tue, 9 Oct 2018 15:25:21 +0200 Subject: [PATCH 1/3] Add tests for the MetadataFieldWrapperComponent --- .../metadata-field-wrapper.component.spec.ts | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts diff --git a/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts b/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts new file mode 100644 index 0000000000..f7cd8f1786 --- /dev/null +++ b/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts @@ -0,0 +1,54 @@ +import { ComponentFixture, TestBed, async } from '@angular/core/testing'; +import { By } from '@angular/platform-browser'; +import { Component, DebugElement } from '@angular/core'; + +import { MetadataFieldWrapperComponent } from './metadata-field-wrapper.component'; + +@Component({ + selector: 'ds-component-with-content', + template: '\n' + + '
\n' + + '
\n' + + '
' +}) +class ContentComponent {} + +fdescribe('MetadataFieldWrapperComponent', () => { + let component: MetadataFieldWrapperComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [MetadataFieldWrapperComponent, ContentComponent] + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(MetadataFieldWrapperComponent); + component = fixture.componentInstance; + }); + + const wrapperSelector = '.simple-view-element'; + const labelSelector = '.simple-view-element-header'; + + it('should create', () => { + expect(component).toBeDefined(); + }); + + it('should not show a label when there is no content', () => { + component.label = 'test label'; + fixture.detectChanges(); + const debugLabel = fixture.debugElement.query(By.css(labelSelector)); + expect(debugLabel).toBeNull(); + }); + + it('should show a label when there is content', () => { + const parentFixture = TestBed.createComponent(ContentComponent); + parentFixture.detectChanges(); + const parentComponent = parentFixture.componentInstance; + const parentNative = parentFixture.nativeElement; + const nativeLabel = parentNative.querySelector(labelSelector); + expect(nativeLabel.textContent).toContain('test label'); + }); + +}); From bbe22d9636a305060b1670f2e45ad21e91002b67 Mon Sep 17 00:00:00 2001 From: Antoine Snyers Date: Tue, 9 Oct 2018 12:40:12 +0200 Subject: [PATCH 2/3] Hide metadata labels when there are no values --- .../metadata-field-wrapper.component.html | 8 +++++--- .../metadata-values/metadata-values.component.ts | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.html b/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.html index d926b5330e..084232edf4 100644 --- a/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.html +++ b/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.html @@ -1,6 +1,8 @@
+
{{ label }}
-
- -
+
+
+ +
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 36499c4721..1c94b56d57 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,4 +1,5 @@ import { Component, Input } from '@angular/core'; +import { Metadatum } from '../../../core/shared/metadatum.model'; /** * This component renders the configured 'values' into the ds-metadata-field-wrapper component. @@ -11,7 +12,7 @@ import { Component, Input } from '@angular/core'; }) export class MetadataValuesComponent { - @Input() values: any; + @Input() values: Metadatum[]; @Input() separator: string; From 7ac26843b7c0b7f5ab0ae0658f2fdad035179693 Mon Sep 17 00:00:00 2001 From: Antoine Snyers Date: Tue, 9 Oct 2018 15:37:03 +0200 Subject: [PATCH 3/3] Remove the 'f' in fdescribe --- .../metadata-field-wrapper.component.spec.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts b/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts index f7cd8f1786..47e7d6c34e 100644 --- a/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts +++ b/src/app/+item-page/field-components/metadata-field-wrapper/metadata-field-wrapper.component.spec.ts @@ -13,7 +13,7 @@ import { MetadataFieldWrapperComponent } from './metadata-field-wrapper.componen }) class ContentComponent {} -fdescribe('MetadataFieldWrapperComponent', () => { +describe('MetadataFieldWrapperComponent', () => { let component: MetadataFieldWrapperComponent; let fixture: ComponentFixture;