@@ -534,3 +534,131 @@ def test_use_desc_for_id_default_false(mock_build_change_set, mock_empty_change_
534534 mock_build_change_set .assert_called_once ()
535535 call_args = mock_build_change_set .call_args
536536 assert call_args .kwargs .get ("use_desc_for_id" ) is False
537+
538+
539+ @patch ("dbt_jobs_as_code.main.DBTCloud" )
540+ @patch ("dbt_jobs_as_code.main.load_job_configuration" )
541+ @patch ("dbt_jobs_as_code.main.resolve_file_paths" )
542+ def test_use_desc_for_id_option_validate (
543+ mock_resolve_file_paths , mock_load_job_configuration , mock_DBTCloud
544+ ):
545+ """Test that validate --online passes use_desc_for_id=True to DBTCloud"""
546+ from dbt_jobs_as_code .schemas .common_types import Settings , Triggers
547+ from dbt_jobs_as_code .schemas .job import JobDefinition
548+
549+ mock_resolve_file_paths .return_value = (["config.yml" ], [])
550+
551+ job = JobDefinition (
552+ project_id = 123 ,
553+ environment_id = 456 ,
554+ account_id = 789 ,
555+ name = "Test Job" ,
556+ settings = Settings (threads = 4 ),
557+ run_generate_sources = False ,
558+ execute_steps = ["dbt run" ],
559+ generate_docs = False ,
560+ schedule = {"cron" : "0 * * * *" },
561+ triggers = Triggers (schedule = True ),
562+ )
563+ mock_config = Mock ()
564+ mock_config .jobs = {"test-job" : job }
565+ mock_load_job_configuration .return_value = mock_config
566+
567+ instance = mock_DBTCloud .return_value
568+ instance .get_environments .return_value = [{"id" : 456 , "project_id" : 123 }]
569+ instance .get_jobs .return_value = []
570+
571+ runner = CliRunner ()
572+ result = runner .invoke (cli , ["validate" , "--online" , "--use-desc-for-id" , "config.yml" ])
573+
574+ assert result .exit_code == 0
575+ mock_DBTCloud .assert_called_once ()
576+ assert mock_DBTCloud .call_args .kwargs ["use_desc_for_id" ] is True
577+
578+
579+ @patch ("dbt_jobs_as_code.main.DBTCloud" )
580+ def test_use_desc_for_id_option_import_jobs (mock_DBTCloud ):
581+ """Test that import-jobs passes use_desc_for_id=True to DBTCloud"""
582+ instance = mock_DBTCloud .return_value
583+ instance .get_jobs .return_value = []
584+ instance .get_env_vars .return_value = {}
585+
586+ runner = CliRunner ()
587+ result = runner .invoke (
588+ cli ,
589+ ["import-jobs" , "--account-id" , "789" , "--use-desc-for-id" ],
590+ )
591+
592+ assert result .exit_code == 0
593+ mock_DBTCloud .assert_called_once ()
594+ assert mock_DBTCloud .call_args .kwargs ["use_desc_for_id" ] is True
595+
596+
597+ @patch ("dbt_jobs_as_code.main.DBTCloud" )
598+ @patch ("dbt_jobs_as_code.main.load_job_configuration" )
599+ @patch ("dbt_jobs_as_code.main.resolve_file_paths" )
600+ def test_use_desc_for_id_option_link (
601+ mock_resolve_file_paths , mock_load_job_configuration , mock_DBTCloud
602+ ):
603+ """Test that link passes use_desc_for_id=True to DBTCloud"""
604+ from dbt_jobs_as_code .schemas .common_types import Settings , Triggers
605+ from dbt_jobs_as_code .schemas .job import JobDefinition
606+
607+ mock_resolve_file_paths .return_value = (["config.yml" ], [])
608+
609+ job = JobDefinition (
610+ project_id = 123 ,
611+ environment_id = 456 ,
612+ account_id = 789 ,
613+ name = "Test Job" ,
614+ settings = Settings (threads = 4 ),
615+ run_generate_sources = False ,
616+ execute_steps = ["dbt run" ],
617+ generate_docs = False ,
618+ schedule = {"cron" : "0 * * * *" },
619+ triggers = Triggers (schedule = True ),
620+ )
621+ mock_config = Mock ()
622+ mock_config .jobs = {"test-job" : job }
623+ mock_load_job_configuration .return_value = mock_config
624+
625+ runner = CliRunner ()
626+ result = runner .invoke (cli , ["link" , "--dry-run" , "--use-desc-for-id" , "config.yml" ])
627+
628+ assert result .exit_code == 0
629+ mock_DBTCloud .assert_called_once ()
630+ assert mock_DBTCloud .call_args .kwargs ["use_desc_for_id" ] is True
631+
632+
633+ @patch ("dbt_jobs_as_code.main.DBTCloud" )
634+ def test_use_desc_for_id_option_unlink (mock_DBTCloud ):
635+ """Test that unlink passes use_desc_for_id=True to DBTCloud"""
636+ instance = mock_DBTCloud .return_value
637+ instance .get_jobs .return_value = []
638+
639+ runner = CliRunner ()
640+ result = runner .invoke (
641+ cli ,
642+ ["unlink" , "--account-id" , "789" , "--use-desc-for-id" ],
643+ )
644+
645+ assert result .exit_code == 0
646+ mock_DBTCloud .assert_called_once ()
647+ assert mock_DBTCloud .call_args .kwargs ["use_desc_for_id" ] is True
648+
649+
650+ @patch ("dbt_jobs_as_code.main.DBTCloud" )
651+ def test_use_desc_for_id_option_deactivate_jobs (mock_DBTCloud ):
652+ """Test that deactivate-jobs passes use_desc_for_id=True to DBTCloud"""
653+ instance = mock_DBTCloud .return_value
654+ instance .get_jobs .return_value = []
655+
656+ runner = CliRunner ()
657+ result = runner .invoke (
658+ cli ,
659+ ["deactivate-jobs" , "--account-id" , "789" , "--use-desc-for-id" ],
660+ )
661+
662+ assert result .exit_code == 0
663+ mock_DBTCloud .assert_called_once ()
664+ assert mock_DBTCloud .call_args .kwargs ["use_desc_for_id" ] is True
0 commit comments