@@ -8,13 +8,15 @@ import (
88 "time"
99
1010 "github.com/databricks/databricks-sdk-go/apierr"
11+ "github.com/databricks/databricks-sdk-go/experimental/mocks"
1112 "github.com/databricks/databricks-sdk-go/service/compute"
1213 "github.com/databricks/databricks-sdk-go/service/jobs"
1314 "github.com/databricks/terraform-provider-databricks/clusters"
1415 "github.com/databricks/terraform-provider-databricks/common"
1516 "github.com/databricks/terraform-provider-databricks/qa"
1617
1718 "github.com/stretchr/testify/assert"
19+ "github.com/stretchr/testify/mock"
1820 "github.com/stretchr/testify/require"
1921)
2022
@@ -621,6 +623,123 @@ func TestResourceJobCreate_ForEachTask(t *testing.T) {
621623 assert .NoError (t , err )
622624 assert .Equal (t , "789" , d .Id ())
623625}
626+ func TestResourceJobCreate_PowerBiTask (t * testing.T ) {
627+ d , err := qa.ResourceFixture {
628+ MockWorkspaceClientFunc : func (w * mocks.MockWorkspaceClient ) {
629+ e := w .GetMockJobsAPI ().EXPECT ()
630+ e .Create (mock .Anything , jobs.CreateJob {
631+ Name : "power_bi_task_name" ,
632+ MaxConcurrentRuns : 1 ,
633+ Queue : & jobs.QueueSettings {
634+ Enabled : false ,
635+ },
636+ Tasks : []jobs.Task {
637+ {
638+ TaskKey : "power_bi_task_key" ,
639+ PowerBiTask : & jobs.PowerBiTask {
640+ ConnectionResourceName : "test-connection" ,
641+ PowerBiModel : & jobs.PowerBiModel {
642+ AuthenticationMethod : jobs .AuthenticationMethodOauth ,
643+ ModelName : "TestModel" ,
644+ OverwriteExisting : true ,
645+ StorageMode : jobs .StorageModeDirectQuery ,
646+ WorkspaceName : "TestWorkspace" ,
647+ },
648+ RefreshAfterUpdate : true ,
649+ Tables : []jobs.PowerBiTable {
650+ {
651+ Catalog : "TestCatalog" ,
652+ Name : "TestTable1" ,
653+ Schema : "TestSchema" ,
654+ StorageMode : jobs .StorageModeDirectQuery ,
655+ },
656+ {
657+ Catalog : "TestCatalog" ,
658+ Name : "TestTable2" ,
659+ Schema : "TestSchema" ,
660+ StorageMode : jobs .StorageModeDual ,
661+ },
662+ },
663+ WarehouseId : "12345" ,
664+ },
665+ },
666+ },
667+ }).
668+ Return (& jobs.CreateResponse {
669+ JobId : 789 ,
670+ }, nil )
671+ e .GetByJobId (mock .Anything , int64 (789 )).Return (& jobs.Job {
672+ JobId : 789 ,
673+ Settings : & jobs.JobSettings {
674+ Name : "power_bi_task_name" ,
675+ Tasks : []jobs.Task {
676+ {
677+ TaskKey : "power_bi_task_key" ,
678+ PowerBiTask : & jobs.PowerBiTask {
679+ ConnectionResourceName : "test-connection" ,
680+ PowerBiModel : & jobs.PowerBiModel {
681+ AuthenticationMethod : jobs .AuthenticationMethodOauth ,
682+ ModelName : "TestModel" ,
683+ OverwriteExisting : true ,
684+ StorageMode : jobs .StorageModeDirectQuery ,
685+ WorkspaceName : "TestWorkspace" ,
686+ },
687+ RefreshAfterUpdate : true ,
688+ Tables : []jobs.PowerBiTable {
689+ {
690+ Catalog : "TestCatalog" ,
691+ Name : "TestTable1" ,
692+ Schema : "TestSchema" ,
693+ StorageMode : jobs .StorageModeDirectQuery ,
694+ },
695+ {
696+ Catalog : "TestCatalog" ,
697+ Name : "TestTable2" ,
698+ Schema : "TestSchema" ,
699+ StorageMode : jobs .StorageModeDual ,
700+ },
701+ },
702+ WarehouseId : "12345" ,
703+ },
704+ },
705+ },
706+ },
707+ }, nil )
708+ },
709+ Create : true ,
710+ Resource : ResourceJob (),
711+ HCL : `name = "power_bi_task_name"
712+ task {
713+ task_key = "power_bi_task_key"
714+ power_bi_task {
715+ connection_resource_name = "test-connection"
716+ power_bi_model {
717+ authentication_method = "OAUTH"
718+ model_name = "TestModel"
719+ overwrite_existing = true
720+ storage_mode = "DIRECT_QUERY"
721+ workspace_name = "TestWorkspace"
722+ }
723+ refresh_after_update = true
724+ tables {
725+ catalog = "TestCatalog"
726+ name = "TestTable1"
727+ schema = "TestSchema"
728+ storage_mode = "DIRECT_QUERY"
729+ }
730+ tables {
731+ catalog = "TestCatalog"
732+ name = "TestTable2"
733+ schema = "TestSchema"
734+ storage_mode = "DUAL"
735+ }
736+ warehouse_id = "12345"
737+ }
738+ }` ,
739+ }.Apply (t )
740+ assert .NoError (t , err )
741+ assert .Equal (t , "789" , d .Id ())
742+ }
624743func TestResourceJobCreate_JobParameters (t * testing.T ) {
625744 d , err := qa.ResourceFixture {
626745 Fixtures : []qa.HTTPFixture {
0 commit comments