@@ -452,7 +452,7 @@ describe('preservePvcStorageClassInRawValues', () => {
452452 ...overrides ,
453453 } )
454454
455- it ( 'should set _rawValues overrides when pvc storageClass differs from cluster default' , async ( ) => {
455+ it ( 'should set app _rawValues and databases.storageClass when pvc storageClass differs from cluster default' , async ( ) => {
456456 const values : Record < string , any > = {
457457 cluster : { defaultStorageClass : 'linode-block-storage' } ,
458458 databases : {
@@ -548,4 +548,36 @@ describe('preservePvcStorageClassInRawValues', () => {
548548 expect ( values . databases . harbor ) . toEqual ( { } )
549549 expect ( values . databases . keycloak ) . toEqual ( { } )
550550 } )
551+
552+ it ( 'should keep existing databases.storageClass overrides' , async ( ) => {
553+ const values : Record < string , any > = {
554+ cluster : { defaultStorageClass : 'linode-block-storage' } ,
555+ databases : {
556+ gitea : { storageClass : 'preset-db-sc' } ,
557+ harbor : { storageClass : 'preset-db-sc' } ,
558+ keycloak : { storageClass : 'preset-db-sc' } ,
559+ } ,
560+ }
561+
562+ const listPvcs = jest . fn ( async ( namespace : string , labelSelector : string ) => {
563+ const bySelector : Record < string , any [ ] > = {
564+ 'gitea/cnpg.io/cluster=gitea-db' : [
565+ { metadata : { labels : { 'cnpg.io/pvcRole' : 'PG_DATA' } } , spec : { storageClassName : 'legacy-sc' } } ,
566+ ] ,
567+ 'harbor/cnpg.io/cluster=harbor-otomi-db' : [
568+ { metadata : { labels : { 'cnpg.io/pvcRole' : 'PG_DATA' } } , spec : { storageClassName : 'legacy-sc' } } ,
569+ ] ,
570+ 'keycloak/cnpg.io/cluster=keycloak-db' : [
571+ { metadata : { labels : { 'cnpg.io/pvcRole' : 'PG_DATA' } } , spec : { storageClassName : 'legacy-sc' } } ,
572+ ] ,
573+ }
574+ return bySelector [ `${ namespace } /${ labelSelector } ` ] || [ ]
575+ } )
576+
577+ await preservePvcStorageClassInRawValues ( values , makeDeps ( { listPvcs } ) )
578+
579+ expect ( values . databases . gitea . storageClass ) . toBe ( 'preset-db-sc' )
580+ expect ( values . databases . harbor . storageClass ) . toBe ( 'preset-db-sc' )
581+ expect ( values . databases . keycloak . storageClass ) . toBe ( 'preset-db-sc' )
582+ } )
551583} )
0 commit comments