@@ -2504,7 +2504,11 @@ describe('Docker Watcher', () => {
25042504
25052505 const result = await docker . addImageDetailsToContainer ( container ) ;
25062506
2507- expect ( registry . ensureDockercomposeTriggerForContainer ) . toHaveBeenCalledWith ( 'test-container' , '/tmp/docker-compose.yml' ) ;
2507+ expect ( registry . ensureDockercomposeTriggerForContainer ) . toHaveBeenCalledWith (
2508+ 'test-container' ,
2509+ '/tmp/docker-compose.yml' ,
2510+ { } ,
2511+ ) ;
25082512 expect ( result . triggerInclude ) . toBe ( 'dockercompose.tmp-test-container' ) ;
25092513 } ) ;
25102514
@@ -2539,10 +2543,112 @@ describe('Docker Watcher', () => {
25392543
25402544 const result = await docker . addImageDetailsToContainer ( container ) ;
25412545
2542- expect ( registry . ensureDockercomposeTriggerForContainer ) . toHaveBeenCalledWith ( 'test-container-wud' , '/tmp/docker-compose.yml' ) ;
2546+ expect ( registry . ensureDockercomposeTriggerForContainer ) . toHaveBeenCalledWith (
2547+ 'test-container-wud' ,
2548+ '/tmp/docker-compose.yml' ,
2549+ { } ,
2550+ ) ;
25432551 expect ( result . triggerInclude ) . toBe ( 'dockercompose.tmp-test-container-wud' ) ;
25442552 } ) ;
25452553
2554+ test ( 'should pass compose trigger options from labels' , async ( ) => {
2555+ const container = await setupContainerDetailTest ( docker , {
2556+ container : {
2557+ Image : 'nginx:1.0.0' ,
2558+ Names : [ '/test-container-options' ] ,
2559+ Labels : {
2560+ 'dd.compose.file' : '/tmp/docker-compose.yml' ,
2561+ 'dd.compose.backup' : 'true' ,
2562+ 'dd.compose.prune' : 'false' ,
2563+ 'dd.compose.dryrun' : 'true' ,
2564+ 'dd.compose.auto' : 'false' ,
2565+ 'dd.compose.threshold' : 'minor' ,
2566+ } ,
2567+ } ,
2568+ } ) ;
2569+
2570+ await docker . addImageDetailsToContainer ( container ) ;
2571+
2572+ expect ( registry . ensureDockercomposeTriggerForContainer ) . toHaveBeenCalledWith (
2573+ 'test-container-options' ,
2574+ '/tmp/docker-compose.yml' ,
2575+ {
2576+ backup : 'true' ,
2577+ prune : 'false' ,
2578+ dryrun : 'true' ,
2579+ auto : 'false' ,
2580+ threshold : 'minor' ,
2581+ } ,
2582+ ) ;
2583+ } ) ;
2584+
2585+ test ( 'should pass compose trigger options from wud labels as fallback' , async ( ) => {
2586+ const container = await setupContainerDetailTest ( docker , {
2587+ container : {
2588+ Image : 'nginx:1.0.0' ,
2589+ Names : [ '/test-container-options-wud' ] ,
2590+ Labels : {
2591+ 'wud.compose.file' : '/tmp/docker-compose.yml' ,
2592+ 'wud.compose.backup' : 'false' ,
2593+ 'wud.compose.prune' : 'true' ,
2594+ 'wud.compose.dryrun' : 'false' ,
2595+ 'wud.compose.auto' : 'true' ,
2596+ 'wud.compose.threshold' : 'patch' ,
2597+ } ,
2598+ } ,
2599+ } ) ;
2600+
2601+ await docker . addImageDetailsToContainer ( container ) ;
2602+
2603+ expect ( registry . ensureDockercomposeTriggerForContainer ) . toHaveBeenCalledWith (
2604+ 'test-container-options-wud' ,
2605+ '/tmp/docker-compose.yml' ,
2606+ {
2607+ backup : 'false' ,
2608+ prune : 'true' ,
2609+ dryrun : 'false' ,
2610+ auto : 'true' ,
2611+ threshold : 'patch' ,
2612+ } ,
2613+ ) ;
2614+ } ) ;
2615+
2616+ test ( 'should prefer dd compose trigger options over wud when both are set' , async ( ) => {
2617+ const container = await setupContainerDetailTest ( docker , {
2618+ container : {
2619+ Image : 'nginx:1.0.0' ,
2620+ Names : [ '/test-container-options-precedence' ] ,
2621+ Labels : {
2622+ 'dd.compose.file' : '/tmp/docker-compose.yml' ,
2623+ 'dd.compose.backup' : 'true' ,
2624+ 'dd.compose.prune' : 'false' ,
2625+ 'dd.compose.dryrun' : 'true' ,
2626+ 'dd.compose.auto' : 'false' ,
2627+ 'dd.compose.threshold' : 'minor' ,
2628+ 'wud.compose.backup' : 'false' ,
2629+ 'wud.compose.prune' : 'true' ,
2630+ 'wud.compose.dryrun' : 'false' ,
2631+ 'wud.compose.auto' : 'true' ,
2632+ 'wud.compose.threshold' : 'patch' ,
2633+ } ,
2634+ } ,
2635+ } ) ;
2636+
2637+ await docker . addImageDetailsToContainer ( container ) ;
2638+
2639+ expect ( registry . ensureDockercomposeTriggerForContainer ) . toHaveBeenCalledWith (
2640+ 'test-container-options-precedence' ,
2641+ '/tmp/docker-compose.yml' ,
2642+ {
2643+ backup : 'true' ,
2644+ prune : 'false' ,
2645+ dryrun : 'true' ,
2646+ auto : 'false' ,
2647+ threshold : 'minor' ,
2648+ } ,
2649+ ) ;
2650+ } ) ;
2651+
25462652 test ( 'should continue when dockercompose trigger creation fails' , async ( ) => {
25472653 const ensureTriggerSpy = vi
25482654 . spyOn ( registry , 'ensureDockercomposeTriggerForContainer' )
@@ -2564,7 +2670,7 @@ describe('Docker Watcher', () => {
25642670 triggerInclude : 'ntfy.default:major' ,
25652671 } ) ;
25662672
2567- expect ( ensureTriggerSpy ) . toHaveBeenCalledWith ( 'test-container' , '/tmp/docker-compose.yml' ) ;
2673+ expect ( ensureTriggerSpy ) . toHaveBeenCalledWith ( 'test-container' , '/tmp/docker-compose.yml' , { } ) ;
25682674 // On failure, processing should continue and the original triggerInclude should be preserved.
25692675 expect ( result . triggerInclude ) . toBe ( 'ntfy.default:major' ) ;
25702676 } ) ;
0 commit comments