79597: Update ds-metadata-field-wrapper unit tests

This commit is contained in:
Yura Bondarenko
2021-05-27 18:03:43 +02:00
parent 120ecc6988
commit 4b238e1842

View File

@@ -1,4 +1,4 @@
import { Component } from '@angular/core'; import { Component, Input } from '@angular/core';
import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing'; import { waitForAsync, ComponentFixture, TestBed } from '@angular/core/testing';
import { MetadataFieldWrapperComponent } from './metadata-field-wrapper.component'; import { MetadataFieldWrapperComponent } from './metadata-field-wrapper.component';
@@ -6,35 +6,34 @@ import { MetadataFieldWrapperComponent } from './metadata-field-wrapper.componen
/* tslint:disable:max-classes-per-file */ /* tslint:disable:max-classes-per-file */
@Component({ @Component({
selector: 'ds-component-without-content', selector: 'ds-component-without-content',
template: '<ds-metadata-field-wrapper [label]="\'test label\'">\n' + template: '<ds-metadata-field-wrapper [hideIfNoTextContent]="hideIfNoTextContent" [label]="\'test label\'">\n' +
'</ds-metadata-field-wrapper>' '</ds-metadata-field-wrapper>'
}) })
class NoContentComponent {} class NoContentComponent {
public hideIfNoTextContent = true;
}
@Component({ @Component({
selector: 'ds-component-with-empty-spans', selector: 'ds-component-with-empty-spans',
template: '<ds-metadata-field-wrapper [label]="\'test label\'">\n' + template: '<ds-metadata-field-wrapper [hideIfNoTextContent]="hideIfNoTextContent" [label]="\'test label\'">\n' +
' <span></span>\n' + ' <span></span>\n' +
' <span></span>\n' + ' <span></span>\n' +
'</ds-metadata-field-wrapper>' '</ds-metadata-field-wrapper>'
}) })
class SpanContentComponent {} class SpanContentComponent {
@Input() hideIfNoTextContent = true;
}
@Component({ @Component({
selector: 'ds-component-with-text', selector: 'ds-component-with-text',
template: '<ds-metadata-field-wrapper [label]="\'test label\'">\n' + template: '<ds-metadata-field-wrapper [hideIfNoTextContent]="hideIfNoTextContent" [label]="\'test label\'">\n' +
' <span>The quick brown fox jumps over the lazy dog</span>\n' + ' <span>The quick brown fox jumps over the lazy dog</span>\n' +
'</ds-metadata-field-wrapper>' '</ds-metadata-field-wrapper>'
}) })
class TextContentComponent {} class TextContentComponent {
@Input() hideIfNoTextContent = true;
}
@Component({
selector: 'ds-component-with-image',
template: '<ds-metadata-field-wrapper [label]="\'test label\'">\n' +
' <img src="https://some/image.png" alt="an alt text">\n' +
'</ds-metadata-field-wrapper>'
})
class ImgContentComponent {}
/* tslint:enable:max-classes-per-file */ /* tslint:enable:max-classes-per-file */
describe('MetadataFieldWrapperComponent', () => { describe('MetadataFieldWrapperComponent', () => {
@@ -43,7 +42,7 @@ describe('MetadataFieldWrapperComponent', () => {
beforeEach(waitForAsync(() => { beforeEach(waitForAsync(() => {
TestBed.configureTestingModule({ TestBed.configureTestingModule({
declarations: [MetadataFieldWrapperComponent, NoContentComponent, SpanContentComponent, TextContentComponent, ImgContentComponent] declarations: [MetadataFieldWrapperComponent, NoContentComponent, SpanContentComponent, TextContentComponent]
}).compileComponents(); }).compileComponents();
})); }));
@@ -58,6 +57,7 @@ describe('MetadataFieldWrapperComponent', () => {
expect(component).toBeDefined(); expect(component).toBeDefined();
}); });
describe('with hideIfNoTextContent=true', () => {
it('should not show the component when there is no content', () => { it('should not show the component when there is no content', () => {
const parentFixture = TestBed.createComponent(NoContentComponent); const parentFixture = TestBed.createComponent(NoContentComponent);
parentFixture.detectChanges(); parentFixture.detectChanges();
@@ -66,7 +66,7 @@ describe('MetadataFieldWrapperComponent', () => {
expect(nativeWrapper.classList.contains('d-none')).toBe(true); expect(nativeWrapper.classList.contains('d-none')).toBe(true);
}); });
it('should not show the component when there is DOM content but not text or an image', () => { it('should not show the component when there is no text content', () => {
const parentFixture = TestBed.createComponent(SpanContentComponent); const parentFixture = TestBed.createComponent(SpanContentComponent);
parentFixture.detectChanges(); parentFixture.detectChanges();
const parentNative = parentFixture.nativeElement; const parentNative = parentFixture.nativeElement;
@@ -82,14 +82,35 @@ describe('MetadataFieldWrapperComponent', () => {
parentFixture.detectChanges(); parentFixture.detectChanges();
expect(nativeWrapper.classList.contains('d-none')).toBe(false); expect(nativeWrapper.classList.contains('d-none')).toBe(false);
}); });
});
it('should show the component when there is img content', () => { describe('with hideIfNoTextContent=false', () => {
const parentFixture = TestBed.createComponent(ImgContentComponent); it('should show the component when there is no content', () => {
const parentFixture = TestBed.createComponent(NoContentComponent);
parentFixture.componentInstance.hideIfNoTextContent = false;
parentFixture.detectChanges();
const parentNative = parentFixture.nativeElement;
const nativeWrapper = parentNative.querySelector(wrapperSelector);
expect(nativeWrapper.classList.contains('d-none')).toBe(false);
});
it('should show the component when there is no text content', () => {
const parentFixture = TestBed.createComponent(SpanContentComponent);
parentFixture.componentInstance.hideIfNoTextContent = false;
parentFixture.detectChanges();
const parentNative = parentFixture.nativeElement;
const nativeWrapper = parentNative.querySelector(wrapperSelector);
expect(nativeWrapper.classList.contains('d-none')).toBe(false);
});
it('should show the component when there is text content', () => {
const parentFixture = TestBed.createComponent(TextContentComponent);
parentFixture.componentInstance.hideIfNoTextContent = false;
parentFixture.detectChanges(); parentFixture.detectChanges();
const parentNative = parentFixture.nativeElement; const parentNative = parentFixture.nativeElement;
const nativeWrapper = parentNative.querySelector(wrapperSelector); const nativeWrapper = parentNative.querySelector(wrapperSelector);
parentFixture.detectChanges(); parentFixture.detectChanges();
expect(nativeWrapper.classList.contains('d-none')).toBe(false); expect(nativeWrapper.classList.contains('d-none')).toBe(false);
}); });
});
}); });