@@ -12,12 +12,15 @@ import {
1212 TranslateLoader ,
1313 TranslateModule ,
1414} from '@ngx-translate/core' ;
15+ import { ConfigurationDataService } from 'src/app/core/data/configuration-data.service' ;
16+ import { ConfigurationProperty } from 'src/app/core/shared/configuration-property.model' ;
1517import { Item } from 'src/app/core/shared/item.model' ;
1618import {
1719 MetadataMap ,
1820 MetadataValue ,
1921} from 'src/app/core/shared/metadata.models' ;
2022import { createSuccessfulRemoteDataObject$ } from 'src/app/shared/remote-data.utils' ;
23+ import { ConfigurationDataServiceStub } from 'src/app/shared/testing/configuration-data.service.stub' ;
2124import { createPaginatedList } from 'src/app/shared/testing/utils.test' ;
2225
2326import { APP_CONFIG } from '../../../../../../config/app-config.interface' ;
@@ -57,6 +60,7 @@ const testCases: TestCase[] = [
5760 {
5861 testInstance : {
5962 metadata : { 'dc.rights.uri' : undefined , 'dc.rights' : undefined } ,
63+ componentInputs : { variant : 'small' } ,
6064 } ,
6165 expected : {
6266 render : false ,
@@ -68,6 +72,7 @@ const testCases: TestCase[] = [
6872 {
6973 testInstance : {
7074 metadata : { 'dc.rights.uri' : null , 'dc.rights' : null } ,
75+ componentInputs : { variant : 'small' } ,
7176 } ,
7277 expected : {
7378 render : false ,
@@ -79,6 +84,7 @@ const testCases: TestCase[] = [
7984 {
8085 testInstance : {
8186 metadata : { 'dc.rights.uri' : 'https://creativecommons.org/licenses/by/4.0' , 'dc.rights' : null } ,
87+ componentInputs : { variant : 'small' } ,
8288 } ,
8389 expected : {
8490 render : false ,
@@ -90,6 +96,7 @@ const testCases: TestCase[] = [
9096 {
9197 testInstance : {
9298 metadata : { 'dc.rights.uri' : null , 'dc.rights' : licenseNameMock } ,
99+ componentInputs : { variant : 'small' } ,
93100 } ,
94101 expected : {
95102 render : false ,
@@ -101,23 +108,25 @@ const testCases: TestCase[] = [
101108 {
102109 testInstance : {
103110 metadata : { 'dc.rights.uri' : 'https://creativecommons.org/licenses/by/4.0' , 'dc.rights' : licenseNameMock } ,
111+ componentInputs : { variant : 'small' } ,
104112 } ,
105113 expected : {
106114 render : true ,
107115 showName : true ,
108116 showImage : true ,
109- showDisclaimer : false ,
117+ showDisclaimer : true ,
110118 } ,
111119 } ,
112120 {
113121 testInstance : {
114122 metadata : { 'dc.rights.uri' : 'https://creativecommons.org/' , 'dc.rights' : licenseNameMock } ,
123+ componentInputs : { variant : 'small' } ,
115124 } ,
116125 expected : {
117126 render : true ,
118127 showName : true ,
119128 showImage : false ,
120- showDisclaimer : false ,
129+ showDisclaimer : true ,
121130 } ,
122131 } ,
123132 {
@@ -135,19 +144,31 @@ const testCases: TestCase[] = [
135144 {
136145 testInstance : {
137146 metadata : { 'dc.rights.uri' : 'https://creativecommons.org/' , 'dc.rights' : licenseNameMock } ,
138- componentInputs : { showName : false } ,
147+ componentInputs : { variant : 'small' , showName : false } ,
139148 } ,
140149 expected : {
141150 render : true ,
142151 showName : true ,
143152 showImage : false ,
144- showDisclaimer : false ,
153+ showDisclaimer : true ,
154+ } ,
155+ } ,
156+ {
157+ testInstance : {
158+ metadata : { 'dc.rights.uri' : 'https://creativecommons.org/' , 'dc.rights' : licenseNameMock } ,
159+ componentInputs : { variant : 'full' , showName : false } ,
160+ } ,
161+ expected : {
162+ render : true ,
163+ showName : true ,
164+ showImage : false ,
165+ showDisclaimer : true ,
145166 } ,
146167 } ,
147168 {
148169 testInstance : {
149170 metadata : { 'dc.rights.uri' : 'https://creativecommons.org/licenses/by/4.0' , 'dc.rights' : licenseNameMock } ,
150- componentInputs : { showName : false } ,
171+ componentInputs : { variant : 'small' , showName : false } ,
151172 } ,
152173 expected : {
153174 render : true ,
@@ -202,8 +223,22 @@ function configureFixture(
202223
203224describe ( 'ItemPageCcLicenseFieldComponent' , ( ) => {
204225 let fixture : ComponentFixture < ItemPageCcLicenseFieldComponent > ;
226+ let configurationDataService = new ConfigurationDataServiceStub ( ) ;
205227
206228 beforeEach ( waitForAsync ( ( ) => {
229+ configurationDataService . findByPropertyName = jasmine . createSpy ( )
230+ . withArgs ( 'cc.license.name' ) . and . returnValue ( createSuccessfulRemoteDataObject$ ( {
231+ ... new ConfigurationProperty ( ) ,
232+ name : 'cc.license.name' ,
233+ values : [ 'dc.rights' ] ,
234+ } ,
235+ ) )
236+ . withArgs ( 'cc.license.uri' ) . and . returnValue ( createSuccessfulRemoteDataObject$ ( {
237+ ... new ConfigurationProperty ( ) ,
238+ name : 'cc.license.uri' ,
239+ values : [ 'dc.rights.uri' ] ,
240+ } ,
241+ ) ) ;
207242 void TestBed . configureTestingModule ( {
208243 imports : [
209244 TranslateModule . forRoot ( {
@@ -214,7 +249,10 @@ describe('ItemPageCcLicenseFieldComponent', () => {
214249 } ) ,
215250 ItemPageCcLicenseFieldComponent ,
216251 ] ,
217- providers : [ { provide : APP_CONFIG , useValue : environment } ] ,
252+ providers : [
253+ { provide : APP_CONFIG , useValue : environment } ,
254+ { provide : ConfigurationDataService , useValue : configurationDataService } ,
255+ ] ,
218256 schemas : [ NO_ERRORS_SCHEMA ] ,
219257 } )
220258 . overrideComponent ( ItemPageCcLicenseFieldComponent , {
@@ -282,14 +320,13 @@ describe('ItemPageCcLicenseFieldComponent', () => {
282320 it ( 'should show or not CC license disclaimer' ,
283321 ( ) => {
284322 const disclaimerEl = fixture . debugElement . query ( By . css ( 'span' ) ) ;
285- if ( testCase . expected . showDisclaimer ) {
286- expect ( disclaimerEl ) . toBeTruthy ( ) ;
287- expect ( disclaimerEl . nativeElement . innerHTML ) . toContain ( 'item.page.cc.license.disclaimer' ) ;
288- } else if ( testCase . expected . render ) {
289- expect ( disclaimerEl ) . toBeTruthy ( ) ;
290- expect ( disclaimerEl . nativeElement . innerHTML ) . not . toContain ( 'item.page.cc.license.disclaimer' ) ;
291- } else {
292- expect ( disclaimerEl ) . toBeFalsy ( ) ;
323+ expect ( Boolean ( disclaimerEl ) ) . toBe ( testCase . expected . showName ) ;
324+ if ( testCase . expected . showName ) {
325+ if ( testCase . expected . showDisclaimer ) {
326+ expect ( disclaimerEl . nativeElement . innerHTML ) . toContain ( 'item.page.cc.license.disclaimer' ) ;
327+ } else {
328+ expect ( disclaimerEl . nativeElement . innerHTML ) . not . toContain ( 'item.page.cc.license.disclaimer' ) ;
329+ }
293330 }
294331 } ,
295332 ) ;
0 commit comments