From 89af4cb02b078184d69522a61cf8335ae2a66ccb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois=20Agneray?= <francois.agneray@lam.fr>
Date: Tue, 27 Sep 2022 15:54:44 +0200
Subject: [PATCH] Add family background-color property (instance)

---
 .../components/instance-form.component.html   | 10 +++++++
 .../components/instance-form.component.ts     |  1 +
 .../admin/instance/instance-title.resolver.ts | 11 +++++---
 .../app/instance/instance.component.spec.ts   |  1 +
 client/src/app/instance/instance.component.ts |  6 ++++-
 .../components/progress-bar.component.spec.ts |  2 ++
 .../effects/search-multiple.effects.spec.ts   |  2 ++
 .../app/metamodel/models/instance.model.ts    |  1 +
 client/src/test-data.ts                       |  3 +++
 conf-dev/create-db.sh                         |  2 +-
 .../__CG__AppEntityInstance.php               | 26 +++++++++++++++++--
 server/src/Action/InstanceAction.php          |  2 ++
 server/src/Action/InstanceListAction.php      |  2 ++
 server/src/Entity/Instance.php                | 18 +++++++++++++
 server/tests/Action/InstanceActionTest.php    |  1 +
 .../tests/Action/InstanceListActionTest.php   |  1 +
 16 files changed, 82 insertions(+), 7 deletions(-)

diff --git a/client/src/app/admin/instance/components/instance-form.component.html b/client/src/app/admin/instance/components/instance-form.component.html
index 185e0603..d75077d6 100644
--- a/client/src/app/admin/instance/components/instance-form.component.html
+++ b/client/src/app/admin/instance/components/instance-form.component.html
@@ -213,6 +213,16 @@
                 <input class="custom-control-input" type="checkbox" id="family_title_bold" name="family_title_bold" formControlName="family_title_bold">
                 <label class="custom-control-label" for="family_title_bold">Family title bold</label>
             </div>
+            <div class="form-row">
+                <div class="form-group col-md-6">
+                    <label for="family_background_color_picker">Family background color (picker)</label>
+                    <input class="form-control" type="color" id="family_background_color_picker" [value]="form.value.family_background_color" formControlName="family_background_color">
+                </div>
+                <div class="form-group col-md-6">
+                    <label for="family_background_color_input">Family background color (value)</label>
+                    <input type="text" class="form-control" id="family_background_color_input" [value]="form.value.family_background_color" formControlName="family_background_color">
+                </div>
+            </div>
             <div class="form-row">
                 <div class="form-group col-md-6">
                     <label for="family_color_picker">Family color (picker)</label>
diff --git a/client/src/app/admin/instance/components/instance-form.component.ts b/client/src/app/admin/instance/components/instance-form.component.ts
index 4aff6bb2..cc68f071 100644
--- a/client/src/app/admin/instance/components/instance-form.component.ts
+++ b/client/src/app/admin/instance/components/instance-form.component.ts
@@ -51,6 +51,7 @@ export class InstanceFormComponent implements OnInit {
         family_header_background_color: new UntypedFormControl('#F7F7F7'),
         family_title_color: new UntypedFormControl('#007BFF'),
         family_title_bold: new UntypedFormControl(false),
+        family_background_color: new UntypedFormControl('#FFFFFF'),
         family_color: new UntypedFormControl('#212529'),
         progress_bar_title: new UntypedFormControl('Dataset search'),
         progress_bar_title_color: new UntypedFormControl('#000000'),
diff --git a/client/src/app/admin/instance/instance-title.resolver.ts b/client/src/app/admin/instance/instance-title.resolver.ts
index 677c7931..632324af 100644
--- a/client/src/app/admin/instance/instance-title.resolver.ts
+++ b/client/src/app/admin/instance/instance-title.resolver.ts
@@ -10,7 +10,7 @@
 import { Injectable } from '@angular/core';
 import { ActivatedRouteSnapshot, Resolve, RouterStateSnapshot } from '@angular/router';
 import { Observable } from 'rxjs';
-import { map } from 'rxjs/operators';
+import { map, switchMap, skipWhile } from 'rxjs/operators';
 
 import { Store } from '@ngrx/store';
 import * as instanceSelector from 'src/app/metamodel/selectors/instance.selector';
@@ -22,8 +22,13 @@ export class InstanceTitleResolver implements Resolve<string> {
     constructor(private store: Store<{ }>) { }
 
     resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): string | Observable<string> | Promise<string> {
-        return this.store.select(instanceSelector.selectInstanceByRouteName).pipe(
-            map(instance => `Edit instance ${instance.label}`)
+        return this.store.select(instanceSelector.selectInstanceListIsLoaded).pipe(
+            skipWhile(instanceListIsLoaded => !instanceListIsLoaded),
+            switchMap(() => {
+                return this.store.select(instanceSelector.selectInstanceByRouteName).pipe(
+                    map(instance => `Edit instance ${instance.label}`)
+                );
+            })
         );
     }
 }
diff --git a/client/src/app/instance/instance.component.spec.ts b/client/src/app/instance/instance.component.spec.ts
index 32ae9ff6..0077dad4 100644
--- a/client/src/app/instance/instance.component.spec.ts
+++ b/client/src/app/instance/instance.component.spec.ts
@@ -100,6 +100,7 @@ describe('[Instance] InstanceComponent', () => {
             family_header_background_color: '#F7F7F7',
             family_title_color: '#007BFF',
             family_title_bold: false,
+            family_background_color: '#FFFFFF',
             family_color: '#212529',
             progress_bar_title: 'Dataset search',
             progress_bar_title_color: '#000000',
diff --git a/client/src/app/instance/instance.component.ts b/client/src/app/instance/instance.component.ts
index 49c7c518..4b89d378 100644
--- a/client/src/app/instance/instance.component.ts
+++ b/client/src/app/instance/instance.component.ts
@@ -116,7 +116,11 @@ export class InstanceComponent implements OnInit, OnDestroy {
                     this.style.setStyle('.custom-accordion .panel-heading .btn-link', 'color', instance.family_title_color);
                     const familyTitleBold = (instance.family_title_bold) ? 'bold' : 'normal';
                     this.style.setStyle('.custom-accordion .panel-heading .btn-link', 'font-weight', familyTitleBold);
-                    this.style.setStyle('.custom-accordion .panel-body', 'color', instance.family_color);
+                    this.style.setStyles('.custom-accordion .panel-body', {
+                        'color': instance.family_color,
+                        'background-color': `${instance.family_background_color}`
+                    });
+                    this.style.setStyle('.custom-accordion .panel-body .card', 'background-color', instance.family_background_color);
                 }
             }
         });
diff --git a/client/src/app/instance/search/components/progress-bar.component.spec.ts b/client/src/app/instance/search/components/progress-bar.component.spec.ts
index 4a0d1bd9..75d22c51 100644
--- a/client/src/app/instance/search/components/progress-bar.component.spec.ts
+++ b/client/src/app/instance/search/components/progress-bar.component.spec.ts
@@ -73,6 +73,7 @@ describe('[Instance][Search][Component] ProgressBarComponent', () => {
             family_header_background_color: '#F7F7F7',
             family_title_color: '#007BFF',
             family_title_bold: false,
+            family_background_color: '#FFFFFF',
             family_color: '#212529',
             progress_bar_title: 'Dataset search',
             progress_bar_title_color: '#000000',
@@ -129,6 +130,7 @@ describe('[Instance][Search][Component] ProgressBarComponent', () => {
             family_header_background_color: '#F7F7F7',
             family_title_color: '#007BFF',
             family_title_bold: false,
+            family_background_color: '#FFFFFF',
             family_color: '#212529',
             progress_bar_title: 'Dataset search',
             progress_bar_title_color: '#000000',
diff --git a/client/src/app/instance/store/effects/search-multiple.effects.spec.ts b/client/src/app/instance/store/effects/search-multiple.effects.spec.ts
index fa3f22d2..15f2c50f 100644
--- a/client/src/app/instance/store/effects/search-multiple.effects.spec.ts
+++ b/client/src/app/instance/store/effects/search-multiple.effects.spec.ts
@@ -155,6 +155,7 @@ describe('[Instance][Store] SearchMultipleEffects', () => {
                     family_header_background_color: '#F7F7F7',
                     family_title_color: '#007BFF',
                     family_title_bold: false,
+                    family_background_color: '#FFFFFF',
                     family_color: '#212529',
                     progress_bar_title: 'Dataset search',
                     progress_bar_title_color: '#000000',
@@ -254,6 +255,7 @@ describe('[Instance][Store] SearchMultipleEffects', () => {
                     family_header_background_color: '#F7F7F7',
                     family_title_color: '#007BFF',
                     family_title_bold: false,
+                    family_background_color: '#FFFFFF',
                     family_color: '#212529',
                     progress_bar_title: 'Dataset search',
                     progress_bar_title_color: '#000000',
diff --git a/client/src/app/metamodel/models/instance.model.ts b/client/src/app/metamodel/models/instance.model.ts
index 73a90c24..edfb3f20 100644
--- a/client/src/app/metamodel/models/instance.model.ts
+++ b/client/src/app/metamodel/models/instance.model.ts
@@ -38,6 +38,7 @@ export interface Instance {
     family_header_background_color: string;
     family_title_color: string;
     family_title_bold: boolean;
+    family_background_color: string;
     family_color: string;
     progress_bar_title: string;
     progress_bar_title_color: string;
diff --git a/client/src/test-data.ts b/client/src/test-data.ts
index 62671a64..344eef71 100644
--- a/client/src/test-data.ts
+++ b/client/src/test-data.ts
@@ -70,6 +70,7 @@ export const INSTANCE_LIST: Instance[] = [
         family_header_background_color: '#F7F7F7',
         family_title_color: '#007BFF',
         family_title_bold: false,
+        family_background_color: '#FFFFFF',
         family_color: '#212529',
         progress_bar_title: 'Dataset search',
         progress_bar_title_color: '#000000',
@@ -120,6 +121,7 @@ export const INSTANCE_LIST: Instance[] = [
         family_header_background_color: '#F7F7F7',
         family_title_color: '#007BFF',
         family_title_bold: false,
+        family_background_color: '#FFFFFF',
         family_color: '#212529',
         progress_bar_title: 'Dataset search',
         progress_bar_title_color: '#000000',
@@ -172,6 +174,7 @@ export const INSTANCE: Instance = {
     family_header_background_color: '#F7F7F7',
     family_title_color: '#007BFF',
     family_title_bold: false,
+    family_background_color: '#FFFFFF',
     family_color: '#212529',
     progress_bar_title: 'Dataset search',
     progress_bar_title_color: '#000000',
diff --git a/conf-dev/create-db.sh b/conf-dev/create-db.sh
index 622ea255..4a326c6c 100644
--- a/conf-dev/create-db.sh
+++ b/conf-dev/create-db.sh
@@ -8,7 +8,7 @@ set -e
 curl -d '{"label":"Test","dbname":"anis_test","dbtype":"pdo_pgsql","dbhost":"db","dbport":5432,"dblogin":"anis","dbpassword":"anis"}' --header 'Content-Type: application/json' -X POST http://localhost/database
 
 # Add default instance
-curl -d '{"name":"default","label":"Default instance","description":"Instance for the test","scientific_manager":"M. Durand","instrument":"Multiple","wavelength_domain":"Visible imaging / Spectroscopy","display":10,"data_path":"\/DEFAULT","files_path":"\/INSTANCE_FILES","public":true,"portal_logo":"","design_color":"#7AC29A","design_background_color":"#ffffff","design_logo":"/logo.png","design_favicon":"/favicon.ico","navbar_background_color":"#F8F9FA","navbar_border_bottom_color":"#DEE2E6","navbar_color_href":"#000000","footer_background_color":"#F8F9FA","footer_border_top_color":"#DEE2E6","footer_text_color":"#000000","family_border_color":"#DFDFDF","family_header_background_color":"#F7F7F7","family_title_color":"#007BFF","family_title_bold":false,"family_color":"#212529","progress_bar_title":"Dataset search","progress_bar_title_color":"#000000","progress_bar_subtitle":"Select a dataset, add criteria, select output columns and display the result.","progress_bar_subtitle_color":"#6C757D","progress_bar_color":"#E9ECEF","progress_bar_active_color":"#7AC29A","progress_bar_circle_color":"#FFFFFF","progress_bar_circle_icon_color":"#CCCCCC","progress_bar_circle_icon_active_color":"#FFFFFF","progress_bar_text_color":"#91B2BF","samp_enabled":true,"back_to_portal":true,"user_menu_enabled":true,"search_by_criteria_allowed":true,"search_by_criteria_label":"Search","search_multiple_allowed":false,"search_multiple_label":"Search multiple","search_multiple_all_datasets_selected":false,"documentation_allowed":false,"documentation_label":"Documentation"}' --header 'Content-Type: application/json' -X POST http://localhost/instance
+curl -d '{"name":"default","label":"Default instance","description":"Instance for the test","scientific_manager":"M. Durand","instrument":"Multiple","wavelength_domain":"Visible imaging / Spectroscopy","display":10,"data_path":"\/DEFAULT","files_path":"\/INSTANCE_FILES","public":true,"portal_logo":"","design_color":"#7AC29A","design_background_color":"#ffffff","design_logo":"/logo.png","design_favicon":"/favicon.ico","navbar_background_color":"#F8F9FA","navbar_border_bottom_color":"#DEE2E6","navbar_color_href":"#000000","footer_background_color":"#F8F9FA","footer_border_top_color":"#DEE2E6","footer_text_color":"#000000","family_border_color":"#DFDFDF","family_header_background_color":"#F7F7F7","family_title_color":"#007BFF","family_title_bold":false,"family_background_color":"#FFFFFF","family_color":"#212529","progress_bar_title":"Dataset search","progress_bar_title_color":"#000000","progress_bar_subtitle":"Select a dataset, add criteria, select output columns and display the result.","progress_bar_subtitle_color":"#6C757D","progress_bar_color":"#E9ECEF","progress_bar_active_color":"#7AC29A","progress_bar_circle_color":"#FFFFFF","progress_bar_circle_icon_color":"#CCCCCC","progress_bar_circle_icon_active_color":"#FFFFFF","progress_bar_text_color":"#91B2BF","samp_enabled":true,"back_to_portal":true,"user_menu_enabled":true,"search_by_criteria_allowed":true,"search_by_criteria_label":"Search","search_multiple_allowed":false,"search_multiple_label":"Search multiple","search_multiple_all_datasets_selected":false,"documentation_allowed":false,"documentation_label":"Documentation"}' --header 'Content-Type: application/json' -X POST http://localhost/instance
 
 # Add dataset families
 curl -d '{"label":"Default dataset family","display":10,"opened":true}' --header 'Content-Type: application/json' -X POST http://localhost/instance/default/dataset-family
diff --git a/server/doctrine-proxy/__CG__AppEntityInstance.php b/server/doctrine-proxy/__CG__AppEntityInstance.php
index 58ffa63a..3ea80270 100644
--- a/server/doctrine-proxy/__CG__AppEntityInstance.php
+++ b/server/doctrine-proxy/__CG__AppEntityInstance.php
@@ -67,10 +67,10 @@ class Instance extends \App\Entity\Instance implements \Doctrine\ORM\Proxy\Proxy
     public function __sleep()
     {
         if ($this->__isInitialized__) {
-            return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'designColor', 'designBackgroundColor', 'designLogo', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
+            return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'designColor', 'designBackgroundColor', 'designLogo', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyBackgroundColor', 'familyColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
         }
 
-        return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'designColor', 'designBackgroundColor', 'designLogo', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
+        return ['__isInitialized__', 'name', 'label', 'description', 'scientificManager', 'instrument', 'wavelengthDomain', 'display', 'dataPath', 'filesPath', 'public', 'portalLogo', 'designColor', 'designBackgroundColor', 'designLogo', 'designFavicon', 'navbarBackgroundColor', 'navbarBorderBottomColor', 'navbarColorHref', 'footerBackgroundColor', 'footerBorderTopColor', 'footerTextColor', 'familyBorderColor', 'familyHeaderBackgroundColor', 'familyTitleColor', 'familyTitleBold', 'familyBackgroundColor', 'familyColor', 'progressBarTitle', 'progressBarTitleColor', 'progressBarSubtitle', 'progressBarSubtitleColor', 'progressBarColor', 'progressBarActiveColor', 'progressBarCircleColor', 'progressBarCircleIconColor', 'progressBarCircleIconActiveColor', 'progressBarTextColor', 'sampEnabled', 'backToPortal', 'userMenuEnabled', 'searchByCriteriaAllowed', 'searchByCriteriaLabel', 'searchMultipleAllowed', 'searchMultipleLabel', 'searchMultipleAllDatasetsSelected', 'documentationAllowed', 'documentationLabel', 'datasetFamilies'];
     }
 
     /**
@@ -720,6 +720,28 @@ class Instance extends \App\Entity\Instance implements \Doctrine\ORM\Proxy\Proxy
         return parent::setFamilyTitleBold($familyTitleBold);
     }
 
+    /**
+     * {@inheritDoc}
+     */
+    public function getFamilyBackgroundColor()
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'getFamilyBackgroundColor', []);
+
+        return parent::getFamilyBackgroundColor();
+    }
+
+    /**
+     * {@inheritDoc}
+     */
+    public function setFamilyBackgroundColor($familyBackgroundColor)
+    {
+
+        $this->__initializer__ && $this->__initializer__->__invoke($this, 'setFamilyBackgroundColor', [$familyBackgroundColor]);
+
+        return parent::setFamilyBackgroundColor($familyBackgroundColor);
+    }
+
     /**
      * {@inheritDoc}
      */
diff --git a/server/src/Action/InstanceAction.php b/server/src/Action/InstanceAction.php
index 0f621d60..845251ce 100644
--- a/server/src/Action/InstanceAction.php
+++ b/server/src/Action/InstanceAction.php
@@ -88,6 +88,7 @@ final class InstanceAction extends AbstractAction
                 'family_header_background_color',
                 'family_title_color',
                 'family_title_bold',
+                'family_background_color',
                 'family_color',
                 'progress_bar_title',
                 'progress_bar_title_color',
@@ -168,6 +169,7 @@ final class InstanceAction extends AbstractAction
         $instance->setFamilyHeaderBackgroundColor($parsedBody['family_header_background_color']);
         $instance->setFamilyTitleColor($parsedBody['family_title_color']);
         $instance->setFamilyTitleBold($parsedBody['family_title_bold']);
+        $instance->setFamilyBackgroundColor($parsedBody['family_background_color']);
         $instance->setFamilyColor($parsedBody['family_color']);
         $instance->setProgressBarTitle($parsedBody['progress_bar_title']);
         $instance->setProgressBarTitleColor($parsedBody['progress_bar_title_color']);
diff --git a/server/src/Action/InstanceListAction.php b/server/src/Action/InstanceListAction.php
index ce95c999..e8299dac 100644
--- a/server/src/Action/InstanceListAction.php
+++ b/server/src/Action/InstanceListAction.php
@@ -88,6 +88,7 @@ final class InstanceListAction extends AbstractAction
                 'family_header_background_color',
                 'family_title_color',
                 'family_title_bold',
+                'family_background_color',
                 'family_color',
                 'progress_bar_title',
                 'progress_bar_title_color',
@@ -162,6 +163,7 @@ final class InstanceListAction extends AbstractAction
         $instance->setFamilyHeaderBackgroundColor($parsedBody['family_header_background_color']);
         $instance->setFamilyTitleColor($parsedBody['family_title_color']);
         $instance->setFamilyTitleBold($parsedBody['family_title_bold']);
+        $instance->setFamilyBackgroundColor($parsedBody['family_background_color']);
         $instance->setFamilyColor($parsedBody['family_color']);
         $instance->setProgressBarTitle($parsedBody['progress_bar_title']);
         $instance->setProgressBarTitleColor($parsedBody['progress_bar_title_color']);
diff --git a/server/src/Entity/Instance.php b/server/src/Entity/Instance.php
index 95c42830..3f3b2fe3 100644
--- a/server/src/Entity/Instance.php
+++ b/server/src/Entity/Instance.php
@@ -199,6 +199,13 @@ class Instance implements \JsonSerializable
      */
     protected $familyTitleBold;
 
+    /**
+     * @var string
+     *
+     * @Column(type="string", name="family_background_color", nullable=false, options={"default" : "#FFFFFF"})
+     */
+    protected $familyBackgroundColor;
+
     /**
      * @var string
      *
@@ -609,6 +616,16 @@ class Instance implements \JsonSerializable
         $this->familyTitleBold = $familyTitleBold;
     }
 
+    public function getFamilyBackgroundColor()
+    {
+        return $this->familyBackgroundColor;
+    }
+
+    public function setFamilyBackgroundColor($familyBackgroundColor)
+    {
+        $this->familyBackgroundColor = $familyBackgroundColor;
+    }
+
     public function getFamilyColor()
     {
         return $this->familyColor;
@@ -861,6 +878,7 @@ class Instance implements \JsonSerializable
             'family_header_background_color' => $this->getFamilyHeaderBackgroundColor(),
             'family_title_color' => $this->getFamilyTitleColor(),
             'family_title_bold' => $this->getFamilyTitleBold(),
+            'family_background_color' => $this->getFamilyBackgroundColor(),
             'family_color' => $this->getFamilyColor(),
             'progress_bar_title' => $this->getProgressBarTitle(),
             'progress_bar_title_color' => $this->getProgressBarTitleColor(),
diff --git a/server/tests/Action/InstanceActionTest.php b/server/tests/Action/InstanceActionTest.php
index 6dabfac7..604ca345 100644
--- a/server/tests/Action/InstanceActionTest.php
+++ b/server/tests/Action/InstanceActionTest.php
@@ -102,6 +102,7 @@ final class InstanceActionTest extends TestCase
             'family_header_background_color' => '#F7F7F7',
             'family_title_color' => '#007BFF',
             'family_title_bold' => false,
+            'family_background_color' => '#FFFFFF',
             'family_color' => '#212529',
             'progress_bar_title' => 'Dataset search',
             'progress_bar_title_color' => '#000000',
diff --git a/server/tests/Action/InstanceListActionTest.php b/server/tests/Action/InstanceListActionTest.php
index d5f58185..afa42d02 100644
--- a/server/tests/Action/InstanceListActionTest.php
+++ b/server/tests/Action/InstanceListActionTest.php
@@ -86,6 +86,7 @@ final class InstanceListActionTest extends TestCase
             'family_header_background_color' => '#F7F7F7',
             'family_title_color' => '#007BFF',
             'family_title_bold' => false,
+            'family_background_color' => '#FFFFFF',
             'family_color' => '#212529',
             'progress_bar_title' => 'Dataset search',
             'progress_bar_title_color' => '#000000',
-- 
GitLab