diff --git a/.gitignore b/.gitignore index 26394e9b6..bc27a754a 100644 --- a/.gitignore +++ b/.gitignore @@ -52,3 +52,5 @@ coverage_unit.out cover_unit.html consistency-errors.log.json + +test/temp/* \ No newline at end of file diff --git a/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go b/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go index 257efe85b..71556163c 100644 --- a/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go +++ b/genesyscloud/architect_emergencygroup/resource_genesyscloud_architect_emergencygroup_test.go @@ -3,11 +3,13 @@ package architect_emergencygroup import ( "fmt" "os" + "path/filepath" "strconv" "strings" "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -27,7 +29,7 @@ func TestAccResourceArchitectEmergencyGroups(t *testing.T) { flowResourceLabel = "test_flow" flowName = "Terraform Emergency Test Flow " + uuid.NewString() - flowFilePath = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml" + flowFilePath = filepath.Join(testrunner.RootDir, "/examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml") inboundCallConfig = fmt.Sprintf("inboundCall:\n name: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", flowName) ) diff --git a/genesyscloud/architect_flow/data_source_genesyscloud_flow_test.go b/genesyscloud/architect_flow/data_source_genesyscloud_flow_test.go index c3c98734e..4db98e226 100644 --- a/genesyscloud/architect_flow/data_source_genesyscloud_flow_test.go +++ b/genesyscloud/architect_flow/data_source_genesyscloud_flow_test.go @@ -6,6 +6,7 @@ import ( "strconv" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -20,7 +21,7 @@ func TestAccDataSourceFlow(t *testing.T) { inboundcallConfig = fmt.Sprintf("inboundCall:\n name: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", flowName) flowResourceLabel = "test_flow" - filePath = filepath.Join("..", "..", "examples", "resources", "genesyscloud_flow", "inboundcall_flow_example.yaml") + filePath = filepath.Join(testrunner.RootDir, "examples", "resources", "genesyscloud_flow", "inboundcall_flow_example.yaml") ) resource.Test(t, resource.TestCase{ diff --git a/genesyscloud/architect_flow/resource_genesyscloud_architect_flow_utils.go b/genesyscloud/architect_flow/resource_genesyscloud_architect_flow_utils.go index f6776996e..e6b7cfef7 100644 --- a/genesyscloud/architect_flow/resource_genesyscloud_architect_flow_utils.go +++ b/genesyscloud/architect_flow/resource_genesyscloud_architect_flow_utils.go @@ -5,7 +5,6 @@ import ( "log" "strconv" "strings" - "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" ) @@ -21,8 +20,6 @@ func isForceUnlockEnabled(d *schema.ResourceData) bool { } func GenerateFlowResource(resourceLabel, srcFile, fileContent string, forceUnlock bool, substitutions ...string) string { - fullyQualifiedPath, _ := testrunner.NormalizePath(srcFile) - if fileContent != "" { updateFile(srcFile, fileContent) } @@ -33,7 +30,7 @@ func GenerateFlowResource(resourceLabel, srcFile, fileContent string, forceUnloc force_unlock = %v %s } - `, resourceLabel, strconv.Quote(srcFile), strconv.Quote(fullyQualifiedPath), forceUnlock, strings.Join(substitutions, "\n")) + `, resourceLabel, strconv.Quote(srcFile), strconv.Quote(srcFile), forceUnlock, strings.Join(substitutions, "\n")) return flowResourceStr } diff --git a/genesyscloud/architect_flow/resource_genesyscloud_flow_test.go b/genesyscloud/architect_flow/resource_genesyscloud_flow_test.go index 83a68868c..80c318ccf 100644 --- a/genesyscloud/architect_flow/resource_genesyscloud_flow_test.go +++ b/genesyscloud/architect_flow/resource_genesyscloud_flow_test.go @@ -6,9 +6,11 @@ import ( "log" "net/http" "os" + "path/filepath" "strings" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "time" @@ -60,7 +62,7 @@ func TestAccResourceArchFlowForceUnlock(t *testing.T) { flowResourceLabel = "test_force_unlock_flow1" flowName = "Terraform Flow Test ForceUnlock-" + uuid.NewString() flowType = "INBOUNDCALL" - filePath = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml" + filePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml") inboundcallConfig1 = fmt.Sprintf("inboundCall:\n name: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", flowName) inboundcallConfig2 = fmt.Sprintf("inboundCall:\n name: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi again!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", flowName) @@ -122,9 +124,9 @@ func TestAccResourceArchFlowStandard(t *testing.T) { flowDescription2 = "test description 2" flowType1 = "INBOUNDCALL" flowType2 = "INBOUNDEMAIL" - filePath1 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml" //Have to use an explicit path because the filesha function gets screwy on relative class names - filePath2 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example2.yaml" - filePath3 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example3.yaml" + filePath1 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml") + filePath2 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example2.yaml") + filePath3 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example3.yaml") inboundcallConfig1 = fmt.Sprintf("inboundCall:\n name: %s\n description: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", flowName, flowDescription1) inboundcallConfig2 = fmt.Sprintf("inboundCall:\n name: %s\n description: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", flowName, flowDescription2) @@ -221,7 +223,7 @@ func TestAccResourceArchFlowSubstitutions(t *testing.T) { flowName = "Terraform Flow Test-" + uuid.NewString() flowDescription1 = "description 1" flowDescription2 = "description 2" - filePath1 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example_substitutions.yaml" + filePath1 = filepath.Join(testrunner.RootDir, "/examples/resources/genesyscloud_flow/inboundcall_flow_example_substitutions.yaml") ) resource.Test(t, resource.TestCase{ @@ -326,8 +328,8 @@ func TestAccResourceArchFlowSubstitutionsWithMultipleTouch(t *testing.T) { flowName = "Terraform Flow Test-" + uuid.NewString() flowDescription1 = "description 1" flowDescription2 = "description 2" - srcFile = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example_substitutions.yaml" - destFile = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example_holder.yaml" + srcFile = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example_substitutions.yaml") + destFile = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example_holder.yaml") ) //Copy the example substitution file over to a temp file that can be manipulated and modified diff --git a/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_test.go b/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_test.go index 772839279..1b41fb7ce 100644 --- a/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_test.go +++ b/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_test.go @@ -154,28 +154,26 @@ func generateFileVoiceFileDataBlock( fileName string, fileType string, ) string { - fullyQualifiedPath, _ := testrunner.NormalizePath(fileName) return fmt.Sprintf(` voice_file_data { file_name = "%s" file_type = "%s" file_content_hash = filesha256("%s") } - `, fileName, fileType, fullyQualifiedPath) + `, fileName, fileType, fileName) } func generateFileDtmfFileDataBlock( fileName string, fileType string, ) string { - fullyQualifiedPath, _ := testrunner.NormalizePath(fileName) return fmt.Sprintf(` dtmf_file_data { file_name = "%s" file_type = "%s" file_content_hash = filesha256("%s") } - `, fileName, fileType, fullyQualifiedPath) + `, fileName, fileType, fileName) } func verifyFileUpload(grammarResourcePath string, language string, fileType FileType, filename string) resource.TestCheckFunc { diff --git a/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_utils.go b/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_utils.go index 360a67f7f..d7cfdbe06 100644 --- a/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_utils.go +++ b/genesyscloud/architect_grammar_language/resource_genesyscloud_architect_grammar_language_utils.go @@ -5,7 +5,7 @@ import ( "fmt" "log" "os" - "path" + "path/filepath" "strings" "terraform-provider-genesyscloud/genesyscloud/provider" resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" @@ -115,7 +115,7 @@ func ArchitectGrammarLanguageResolver(languageId, exportDirectory, subDirectory sdkConfig := meta.(*provider.ProviderMeta).ClientConfig proxy := getArchitectGrammarLanguageProxy(sdkConfig) - fullPath := path.Join(exportDirectory, subDirectory) + fullPath := filepath.Join(exportDirectory, subDirectory) if err := os.MkdirAll(fullPath, os.ModePerm); err != nil { return err } @@ -215,7 +215,7 @@ func (d *grammarLanguageDownloader) setLanguageFileExtension() { func (d *grammarLanguageDownloader) updatePathsInExportConfigMap() { var ( fileDataMapKey string - filePath = path.Join(d.subDirectory, d.exportFileName) + filePath = filepath.Join(d.subDirectory, d.exportFileName) ) switch d.fileType { @@ -230,9 +230,9 @@ func (d *grammarLanguageDownloader) updatePathsInExportConfigMap() { fileDataMap["file_name"] = filePath fileHashVal := fmt.Sprintf(`${filesha256("%s")}`, filePath) fileDataMap["file_content_hash"] = fileHashVal - fullPath := path.Join(d.exportDirectory, d.subDirectory) + fullPath := filepath.Join(d.exportDirectory, d.subDirectory) d.resource.State.Attributes["file_name"] = filePath - hash, er := files.HashFileContent(path.Join(fullPath, d.exportFileName)) + hash, er := files.HashFileContent(filepath.Join(fullPath, d.exportFileName)) if er != nil { log.Printf("Error Calculating Hash '%s' ", er) } else { diff --git a/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go b/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go index 83536f951..4bbf498aa 100644 --- a/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go +++ b/genesyscloud/architect_user_prompt/resource_architect_user_prompt_schema.go @@ -22,8 +22,8 @@ func SetRegistrar(regInstance registrar.Registrar) { func ArchitectUserPromptExporter() *resourceExporter.ResourceExporter { return &resourceExporter.ResourceExporter{ GetResourcesFunc: provider.GetAllWithPooledClient(getAllUserPrompts), - RefAttrs: map[string]*resourceExporter.RefAttrSettings{}, // No references AllowEmptyArrays: []string{"resources"}, + RefAttrs: map[string]*resourceExporter.RefAttrSettings{}, // No references CustomFileWriter: resourceExporter.CustomFileWriterSettings{ RetrieveAndWriteFilesFunc: ArchitectPromptAudioResolver, SubDirectory: "audio_prompts", diff --git a/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go b/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go index 426a7e9d1..a568e8d23 100644 --- a/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go +++ b/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_test.go @@ -123,8 +123,8 @@ func TestAccResourceUserPromptWavFile(t *testing.T) { userPromptDescription1 := "Test prompt with wav audio file" userPromptResourceLang1 := "en-us" userPromptResourceText1 := "This is a test greeting!" - userPromptResourceFileName1 := testrunner.GetTestDataPath("test-prompt-01.wav") - userPromptResourceFileName2 := testrunner.GetTestDataPath("test-prompt-02.wav") + userPromptResourceFileName1 := testrunner.GetTestDataPath("resource", ResourceType, "test-prompt-01.wav") + userPromptResourceFileName2 := testrunner.GetTestDataPath("resource", ResourceType, "test-prompt-02.wav") userPromptAsset1 := UserPromptResourceStruct{ Language: userPromptResourceLang1, @@ -219,7 +219,7 @@ func TestAccResourceUserPromptWavFileURL(t *testing.T) { httpServerExitDone := &sync.WaitGroup{} httpServerExitDone.Add(1) - srv := fileserver.Start(httpServerExitDone, testrunner.GetTestDataPath(), 8100) + srv := fileserver.Start(httpServerExitDone, testrunner.GetTestDataPath("resource", ResourceType), 8100) resource.Test(t, resource.TestCase{ PreCheck: func() { util.TestAccPreCheck(t) }, diff --git a/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_utils.go b/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_utils.go index 0fd70f912..1da0f40de 100644 --- a/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_utils.go +++ b/genesyscloud/architect_user_prompt/resource_genesyscloud_architect_user_prompt_utils.go @@ -5,14 +5,13 @@ import ( "fmt" "log" "os" - "path" + "path/filepath" "regexp" "terraform-provider-genesyscloud/genesyscloud/provider" resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" "terraform-provider-genesyscloud/genesyscloud/util" files "terraform-provider-genesyscloud/genesyscloud/util/files" "terraform-provider-genesyscloud/genesyscloud/util/resourcedata" - "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema" "github.com/mypurecloud/platform-client-sdk-go/v150/platformclientv2" @@ -103,16 +102,16 @@ func updateFilenamesInExportConfigMap(configMap map[string]interface{}, audioDat } } if fileName != "" { - fileNameVal := path.Join(subDir, fileName) - fileContentVal := fmt.Sprintf(`${filesha256("%s")}`, path.Join(subDir, fileName)) + fileNameVal := filepath.Join(subDir, fileName) + fileContentVal := fmt.Sprintf(`${filesha256("%s")}`, filepath.Join(subDir, fileName)) r["filename"] = fileNameVal r["file_content_hash"] = fileContentVal if resourceID := findResourceID(res, languageStr); resourceID != "" { res.State.Attributes[fmt.Sprintf("resources.%s.%s", resourceID, "filename")] = fileNameVal res.State.Attributes[fmt.Sprintf("resources.%s.%s", resourceID, "file_content_hash")] = fileContentVal - fullPath := path.Join(exportDir, subDir) - hash, er := files.HashFileContent(path.Join(fullPath, fileName)) + fullPath := filepath.Join(exportDir, subDir) + hash, er := files.HashFileContent(filepath.Join(fullPath, fileName)) if er != nil { log.Printf("Error Calculating Hash '%s' ", er) } else { @@ -140,8 +139,7 @@ func GenerateUserPromptResource(userPrompt *UserPromptStruct) string { for _, p := range userPrompt.Resources { var fileContentHash string if p.FileContentHash != util.NullValue { - fullyQualifiedPath, _ := testrunner.NormalizePath(p.FileContentHash) - fileContentHash = fmt.Sprintf(`filesha256("%s")`, fullyQualifiedPath) + fileContentHash = fmt.Sprintf(`filesha256("%s")`, p.FileContentHash) } else { fileContentHash = util.NullValue } @@ -174,7 +172,7 @@ func GenerateUserPromptResource(userPrompt *UserPromptStruct) string { } func ArchitectPromptAudioResolver(promptId, exportDirectory, subDirectory string, configMap map[string]any, meta any, resource resourceExporter.ResourceInfo) error { - fullPath := path.Join(exportDirectory, subDirectory) + fullPath := filepath.Join(exportDirectory, subDirectory) if err := os.MkdirAll(fullPath, os.ModePerm); err != nil { return err } @@ -198,7 +196,7 @@ func ArchitectPromptAudioResolver(promptId, exportDirectory, subDirectory string log.Printf("Found %v resources with downloadable content for prompt '%s'", len(audioDataList), promptId) for _, data := range audioDataList { - log.Printf("Downloading file '%s' from mediaUri", path.Join(fullPath, data.FileName)) + log.Printf("Downloading file '%s' from mediaUri", filepath.Join(fullPath, data.FileName)) if _, err := files.DownloadExportFile(fullPath, data.FileName, data.MediaUri); err != nil { return err } diff --git a/genesyscloud/flow_loglevel/resource_genesyscloud_flow_loglevel_test.go b/genesyscloud/flow_loglevel/resource_genesyscloud_flow_loglevel_test.go index 12b183eb5..6d6a95209 100644 --- a/genesyscloud/flow_loglevel/resource_genesyscloud_flow_loglevel_test.go +++ b/genesyscloud/flow_loglevel/resource_genesyscloud_flow_loglevel_test.go @@ -2,9 +2,11 @@ package flow_loglevel import ( "fmt" + "path/filepath" "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -22,7 +24,7 @@ func TestAccResourceFlowLogLevel(t *testing.T) { flowLoglevelAll = "All" flowLogLevelDisabled = "Disabled" flowId = "${genesyscloud_flow." + flowResourceLabel + ".id}" - filePath = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml" + filePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml") inboundCallConfig = fmt.Sprintf("inboundCall:\n name: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", flowName) ) diff --git a/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go b/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go index e8745745f..82165ac5b 100644 --- a/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go +++ b/genesyscloud/outbound_callanalysisresponseset/resource_genesyscloud_outbound_callanalysisresponseset_test.go @@ -2,6 +2,7 @@ package outbound_callanalysisresponseset import ( "fmt" + "path/filepath" "strconv" "terraform-provider-genesyscloud/genesyscloud/architect_flow" authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" @@ -9,6 +10,7 @@ import ( "terraform-provider-genesyscloud/genesyscloud/provider" routingWrapupcode "terraform-provider-genesyscloud/genesyscloud/routing_wrapupcode" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -35,7 +37,7 @@ func TestAccResourceOutboundCallAnalysisResponseSet(t *testing.T) { contactListName = "Terraform Test Contact List " + uuid.NewString() wrapupCodeName = "Terraform Test WrapUpCode " + uuid.NewString() outboundFlowName = "Terraform Test Flow " + uuid.NewString() - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") divResourceLabel = "test-division" divName = "terraform-" + uuid.NewString() diff --git a/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go b/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go index fd05189d6..63428d330 100644 --- a/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go +++ b/genesyscloud/outbound_campaign/data_source_genesyscloud_outbound_campaign_test.go @@ -2,8 +2,10 @@ package outbound_campaign import ( "fmt" + "path/filepath" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" @@ -18,7 +20,7 @@ func TestAccDataSourceOutboundCampaign(t *testing.T) { resourceLabel = "campaign" campaignName = "Test Campaign " + uuid.NewString() dataSourceLabel = "campaign_data" - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") divResourceLabel = "test-outbound-campaign-division" divName = "terraform-" + uuid.NewString() ) diff --git a/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go b/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go index 4dc97c981..5042eac3a 100644 --- a/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go +++ b/genesyscloud/outbound_campaign/resource_genesyscloud_outbound_campaign_test.go @@ -3,6 +3,7 @@ package outbound_campaign import ( "encoding/json" "fmt" + "path/filepath" "strconv" "strings" "terraform-provider-genesyscloud/genesyscloud/architect_flow" @@ -11,6 +12,7 @@ import ( obDnclist "terraform-provider-genesyscloud/genesyscloud/outbound_dnclist" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "time" @@ -55,7 +57,7 @@ func TestAccResourceOutboundCampaignBasic(t *testing.T) { ruleSetResourceLabel = "rule_set" siteId = "site" callableTimeSetId = "time_set" - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") flowName = "test flow " + uuid.NewString() contactSortFieldName = "zipcode" @@ -428,7 +430,7 @@ func TestAccResourceOutboundCampaignCampaignStatus(t *testing.T) { carResourceLabel = "car" siteId = "site" wrapupCodeResourceLabel = "wrapupcode" - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") flowName = "test flow " + uuid.NewString() flowResourceLabel = "flow" wrapupcodeResourceLabel = "wrapupcode" @@ -630,7 +632,7 @@ func TestAccResourceOutboundCampaignStatusOn(t *testing.T) { contactListResourceLabel = "contact_list" carResourceLabel = "car" siteId = "site" - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") flowName = "test flow " + uuid.NewString() flowResourceLabel = "flow" wrapupcodeResourceLabel = "wrapupcode" diff --git a/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go b/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go index e7e0f9d39..51de84a8e 100644 --- a/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go +++ b/genesyscloud/outbound_campaignrule/data_source_genesyscloud_outbound_campaignrule_test.go @@ -3,11 +3,13 @@ package outbound_campaignrule import ( "fmt" "math/rand" + "path/filepath" "strconv" authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" outboundCampaign "terraform-provider-genesyscloud/genesyscloud/outbound_campaign" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -25,7 +27,7 @@ func TestAccDataSourceOutboundCampaignRule(t *testing.T) { campaign1ResourceLabel = "campaign1" campaign1Name = "TF Test Campaign " + uuid.NewString() - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") campaign1FlowName = "test flow " + uuid.NewString() campaign1Resource = outboundCampaign.GenerateOutboundCampaignBasic( campaign1ResourceLabel, diff --git a/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go b/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go index 0c42bc3e2..95b27d312 100644 --- a/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go +++ b/genesyscloud/outbound_campaignrule/resource_genesyscloud_outbound_campaignrule_test.go @@ -3,6 +3,7 @@ package outbound_campaignrule import ( "fmt" "math/rand" + "path/filepath" "strings" outboundSequence "terraform-provider-genesyscloud/genesyscloud/outbound_sequence" "terraform-provider-genesyscloud/genesyscloud/provider" @@ -25,7 +26,7 @@ func TestAccResourceOutboundCampaignRuleBasic(t *testing.T) { campaign1ResourceLabel = "campaign1" campaign1Name = "TF Test Campaign " + uuid.NewString() - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") campaign1FlowName = "test flow " + uuid.NewString() campaign1Resource = generateCampaignResourceForCampaignRuleTests( campaign1ResourceLabel, @@ -286,7 +287,7 @@ func TestAccResourceOutboundCampaignRuleEnabledAtCreation(t *testing.T) { campaign1ResourceLabel = "campaign1" campaign1Name = "TF Test Campaign " + uuid.NewString() - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") campaign1FlowName = "test flow " + uuid.NewString() campaign1Resource = generateCampaignResourceForCampaignRuleTests( campaign1ResourceLabel, @@ -597,8 +598,6 @@ func generateCampaignResourceForCampaignRuleTests( carResourceLabel, carName string) string { - fullyQualifiedPath, _ := testrunner.NormalizePath(flowFilePath) - return fmt.Sprintf(` resource "genesyscloud_outbound_campaign" "%s" { name = "%s" @@ -703,7 +702,7 @@ resource "genesyscloud_outbound_callanalysisresponseset" "%s" { wrapupCodeName, flowResourceLabel, flowFilePath, - fullyQualifiedPath, + flowFilePath, flowName, flowDivisionName, contactListResourceLabel, // genesyscloud_flow diff --git a/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go b/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go index 8592ab945..7d4ee35cc 100644 --- a/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go +++ b/genesyscloud/outbound_sequence/data_source_genesyscloud_outbound_sequence_test.go @@ -2,9 +2,11 @@ package outbound_sequence import ( "fmt" + "path/filepath" outboundCampaign "terraform-provider-genesyscloud/genesyscloud/outbound_campaign" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" @@ -28,7 +30,7 @@ func TestAccDataSourceOutboundSequence(t *testing.T) { contactListResourceLabel = "contact_list" carResourceLabel = "car" siteId = "site" - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") flowName = "test flow " + uuid.NewString() emergencyNumber = "+13128451429" divResourceLabel = "test-outbound-sequence-division" diff --git a/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go b/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go index a59447c42..ce39910d1 100644 --- a/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go +++ b/genesyscloud/outbound_sequence/resource_genesyscloud_outbound_sequence_test.go @@ -2,10 +2,12 @@ package outbound_sequence import ( "fmt" + "path/filepath" "strconv" outboundCampaign "terraform-provider-genesyscloud/genesyscloud/outbound_campaign" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" @@ -31,7 +33,7 @@ func TestAccResourceOutboundSequence(t *testing.T) { contactListResourceLabel = "contact_list" carResourceLabel = "car" siteId = "site" - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") flowName = "test flow " + uuid.NewString() emergencyNumber = "+13172947329" divResourceLabel = "test-outbound-sequence-division" @@ -139,7 +141,7 @@ func TestAccResourceOutboundSequenceStatus(t *testing.T) { contactListResourceLabel = "contact_list" carResourceLabel = "car" siteId = "site" - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") flowName = "test flow " + uuid.NewString() emergencyNumber = "+13172947330" divResourceLabel = "test-outbound-sequence-division" diff --git a/genesyscloud/platform/platform.go b/genesyscloud/platform/platform.go index 6c7ef0fa0..a27101422 100644 --- a/genesyscloud/platform/platform.go +++ b/genesyscloud/platform/platform.go @@ -31,6 +31,7 @@ const ( PlatformTerraform PlatformOpenTofu PlatformDebugServer + PlatformGoLang ) func (p Platform) String() string { @@ -41,6 +42,8 @@ func (p Platform) String() string { return "tofu" case PlatformDebugServer: return "debug-server" + case PlatformGoLang: + return "go" default: return "unknown" } @@ -58,8 +61,8 @@ func (p Platform) Binary() string { return pathSegments[len(pathSegments)-1] } -func (p Platform) IsDebugServer() bool { - return p == PlatformDebugServer +func (p Platform) IsDevelopmentPlatform() bool { + return p == PlatformDebugServer || p == PlatformGoLang } func (p Platform) GetProviderRegistry() string { @@ -87,7 +90,7 @@ func (p Platform) ExecuteCommand(ctx context.Context, args ...string) (commandOu func IsValidPlatform(p Platform) bool { switch p { - case PlatformTerraform, PlatformOpenTofu, PlatformDebugServer: + case PlatformTerraform, PlatformOpenTofu, PlatformDebugServer, PlatformGoLang: return true default: return false @@ -151,12 +154,18 @@ func init() { return } + if strings.Contains(strings.ToLower(versionOutput.Stdout), "go ") { + platformConfigSingleton.platform = PlatformGoLang + return + } if strings.Contains(strings.ToLower(versionOutput.Stdout), "tofu") { platformConfigSingleton.platform = PlatformOpenTofu - } else { - platformConfigSingleton.platform = PlatformTerraform + return } + platformConfigSingleton.platform = PlatformTerraform + return + } func detectedPlatformLog() { diff --git a/genesyscloud/platform/platform_test.go b/genesyscloud/platform/platform_test.go index f266ec671..96cb74bc7 100644 --- a/genesyscloud/platform/platform_test.go +++ b/genesyscloud/platform/platform_test.go @@ -29,6 +29,11 @@ func TestPlatformString(t *testing.T) { platform: PlatformDebugServer, want: "debug-server", }, + { + name: "go lang platform", + platform: PlatformGoLang, + want: "go", + }, { name: "unknown platform", platform: Platform(99), @@ -119,6 +124,11 @@ func TestGetProviderRegistry(t *testing.T) { platform: PlatformDebugServer, want: "", }, + { + name: "go lang registry", + platform: PlatformGoLang, + want: "", + }, } for _, tt := range tests { @@ -207,7 +217,7 @@ exit 0 } } -func TestIsDebugServer(t *testing.T) { +func TestIsDevelopmentPlatform(t *testing.T) { tests := []struct { name string platform Platform @@ -218,6 +228,11 @@ func TestIsDebugServer(t *testing.T) { platform: PlatformDebugServer, want: true, }, + { + name: "go lang", + platform: PlatformGoLang, + want: true, + }, { name: "terraform", platform: PlatformTerraform, @@ -232,7 +247,7 @@ func TestIsDebugServer(t *testing.T) { for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - if got := tt.platform.IsDebugServer(); got != tt.want { + if got := tt.platform.IsDevelopmentPlatform(); got != tt.want { t.Errorf("Platform.IsDebugServer() = %v, want %v", got, tt.want) } }) diff --git a/genesyscloud/process_automation_trigger/data_source_genesyscloud_processautomation_trigger_test.go b/genesyscloud/process_automation_trigger/data_source_genesyscloud_processautomation_trigger_test.go index 689968668..338571df8 100644 --- a/genesyscloud/process_automation_trigger/data_source_genesyscloud_processautomation_trigger_test.go +++ b/genesyscloud/process_automation_trigger/data_source_genesyscloud_processautomation_trigger_test.go @@ -2,9 +2,11 @@ package process_automation_trigger import ( "fmt" + "path/filepath" "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -25,7 +27,7 @@ func TestAccDataSourceProcessAutomationTrigger(t *testing.T) { workflowTargetDataFormat1 = "Json" flowResourceLabel1 = "test_flow1" - filePath1 = "../../examples/resources/genesyscloud_processautomation_trigger/trigger_workflow_example.yaml" + filePath1 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_processautomation_trigger/trigger_workflow_example.yaml") flowName1 = "terraform-provider-test-" + uuid.NewString() ) var homeDivisionName string diff --git a/genesyscloud/process_automation_trigger/resource_genesyscloud_processautomation_trigger_test.go b/genesyscloud/process_automation_trigger/resource_genesyscloud_processautomation_trigger_test.go index a4e64490b..9b2452ced 100644 --- a/genesyscloud/process_automation_trigger/resource_genesyscloud_processautomation_trigger_test.go +++ b/genesyscloud/process_automation_trigger/resource_genesyscloud_processautomation_trigger_test.go @@ -3,11 +3,13 @@ package process_automation_trigger import ( "encoding/json" "fmt" + "path/filepath" "strconv" "strings" "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -37,7 +39,7 @@ func TestAccResourceProcessAutomationTrigger(t *testing.T) { workflowTargetSettingsDataFormat2 = "TopLevelPrimitives" flowResourceLabel1 = "test_flow1" - filePath1 = "../../examples/resources/genesyscloud_processautomation_trigger/trigger_workflow_example.yaml" + filePath1 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_processautomation_trigger/trigger_workflow_example.yaml") flowName1 = "terraform-provider-test-" + uuid.NewString() ) var homeDivisionName string @@ -288,7 +290,7 @@ func TestAccResourceProcessAutomationTriggerValues(t *testing.T) { description = "description1" flowResourceLabel = "test_flow" - filePath = "../../examples/resources/genesyscloud_processautomation_trigger/trigger_workflow_example.yaml" + filePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_processautomation_trigger/trigger_workflow_example.yaml") flowName = "terraform-provider-test-" + uuid.NewString() ) var homeDivisionName string diff --git a/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go b/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go index 677b70675..a22ec90ba 100644 --- a/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go +++ b/genesyscloud/recording_media_retention_policy/resource_genesyscloud_recording_media_retention_policy_test.go @@ -3,6 +3,7 @@ package recording_media_retention_policy import ( "fmt" "log" + "path/filepath" "reflect" "regexp" "strconv" @@ -17,6 +18,7 @@ import ( routingWrapupcode "terraform-provider-genesyscloud/genesyscloud/routing_wrapupcode" userRoles "terraform-provider-genesyscloud/genesyscloud/user_roles" "terraform-provider-genesyscloud/genesyscloud/util" + "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "time" @@ -472,7 +474,7 @@ var ( integrationIntendedState = "ENABLED" flowResourceLabel1 = "test-flow-resource-1" flowName = "terraform-flow" + uuid.NewString() - filePath1 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example_substitutions.yaml" + filePath1 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example_substitutions.yaml") languageResourceLabel1 = "test-language-1" languageName = "terraform-language" + uuid.NewString() wrapupCodeResourceLabel1 = "test-wrapup-code-1" diff --git a/genesyscloud/responsemanagement_responseasset/data_source_genesyscloud_responsemanagement_responseasset_test.go b/genesyscloud/responsemanagement_responseasset/data_source_genesyscloud_responsemanagement_responseasset_test.go index c91c474c2..929113ac3 100644 --- a/genesyscloud/responsemanagement_responseasset/data_source_genesyscloud_responsemanagement_responseasset_test.go +++ b/genesyscloud/responsemanagement_responseasset/data_source_genesyscloud_responsemanagement_responseasset_test.go @@ -5,7 +5,6 @@ import ( "path/filepath" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" - "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource" @@ -38,11 +37,10 @@ func TestAccDataSourceResponseManagementResponseAsset(t *testing.T) { } func generateResponseManagementResponseAssetDataSource(dataSourceLabel string, name string, dependsOn string) string { - normalizeFilePath, _ := testrunner.NormalizeFileName(name) return fmt.Sprintf(` data "genesyscloud_responsemanagement_responseasset" "%s" { name = "%s" depends_on = [%s] } -`, dataSourceLabel, normalizeFilePath, dependsOn) +`, dataSourceLabel, name, dependsOn) } diff --git a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go index 30a838030..3110f6be7 100644 --- a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go +++ b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_test.go @@ -7,7 +7,6 @@ import ( authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/provider" "terraform-provider-genesyscloud/genesyscloud/util" - "terraform-provider-genesyscloud/genesyscloud/util/testrunner" "testing" "github.com/google/uuid" @@ -24,8 +23,6 @@ func TestAccResourceResponseManagementResponseAsset(t *testing.T) { fileName2 = "genesys-img.png" fullPath1 = filepath.Join(testFilesDir, fileName1) fullPath2 = filepath.Join(testFilesDir, fileName2) - normalizeFileName1, _ = testrunner.NormalizeFileName(fullPath1) - normalizeFileName2, _ = testrunner.NormalizeFileName(fullPath2) divisionResourceLabel = "test_div" divisionName = "test tf divison " + uuid.NewString() ) @@ -40,7 +37,7 @@ func TestAccResourceResponseManagementResponseAsset(t *testing.T) { { Config: GenerateResponseManagementResponseAssetResource(resourceLabel, fullPath1, util.NullValue), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("genesyscloud_responsemanagement_responseasset."+resourceLabel, "filename", normalizeFileName1), + resource.TestCheckResourceAttr("genesyscloud_responsemanagement_responseasset."+resourceLabel, "filename", fullPath1), provider.TestDefaultHomeDivision("genesyscloud_responsemanagement_responseasset."+resourceLabel), ), }, @@ -48,7 +45,7 @@ func TestAccResourceResponseManagementResponseAsset(t *testing.T) { Config: GenerateResponseManagementResponseAssetResource(resourceLabel, fullPath2, "genesyscloud_auth_division."+divisionResourceLabel+".id") + authDivision.GenerateAuthDivisionBasic(divisionResourceLabel, divisionName), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("genesyscloud_responsemanagement_responseasset."+resourceLabel, "filename", normalizeFileName2), + resource.TestCheckResourceAttr("genesyscloud_responsemanagement_responseasset."+resourceLabel, "filename", fullPath2), resource.TestCheckResourceAttrPair("genesyscloud_responsemanagement_responseasset."+resourceLabel, "division_id", "genesyscloud_auth_division."+divisionResourceLabel, "id"), ), @@ -58,7 +55,7 @@ func TestAccResourceResponseManagementResponseAsset(t *testing.T) { Config: GenerateResponseManagementResponseAssetResource(resourceLabel, fullPath2, "data.genesyscloud_auth_division_home.home.id") + fmt.Sprint("\ndata \"genesyscloud_auth_division_home\" \"home\" {}\n"), Check: resource.ComposeTestCheckFunc( - resource.TestCheckResourceAttr("genesyscloud_responsemanagement_responseasset."+resourceLabel, "filename", normalizeFileName2), + resource.TestCheckResourceAttr("genesyscloud_responsemanagement_responseasset."+resourceLabel, "filename", fullPath2), provider.TestDefaultHomeDivision("genesyscloud_responsemanagement_responseasset."+resourceLabel), ), }, diff --git a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go index 5034a46f9..f04eeb8eb 100644 --- a/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go +++ b/genesyscloud/responsemanagement_responseasset/resource_genesyscloud_responsemanagement_responseasset_utils.go @@ -11,14 +11,13 @@ import ( "terraform-provider-genesyscloud/genesyscloud/provider" resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" "terraform-provider-genesyscloud/genesyscloud/util/files" - "terraform-provider-genesyscloud/genesyscloud/util/testrunner" ) func responsemanagementResponseassetResolver(responseAssetId, exportDirectory, subDirectory string, configMap map[string]interface{}, meta interface{}, resource resourceExporter.ResourceInfo) error { sdkConfig := meta.(*provider.ProviderMeta).ClientConfig proxy := getRespManagementRespAssetProxy(sdkConfig) - fullPath := path.Join(exportDirectory, subDirectory) + fullPath := filepath.Join(exportDirectory, subDirectory) if err := os.MkdirAll(fullPath, os.ModePerm); err != nil { return err } @@ -31,7 +30,7 @@ func responsemanagementResponseassetResolver(responseAssetId, exportDirectory, s baseName := strings.TrimSuffix(filepath.Base(*data.Name), filepath.Ext(*data.Name)) fileName := fmt.Sprintf("%s-%s%s", baseName, responseAssetId, filepath.Ext(*data.Name)) - exportFilename := path.Join(subDirectory, fileName) + exportFilename := filepath.Join(subDirectory, fileName) if _, err := files.DownloadExportFile(fullPath, fileName, *data.ContentLocation); err != nil { return err @@ -52,14 +51,11 @@ func responsemanagementResponseassetResolver(responseAssetId, exportDirectory, s } func GenerateResponseManagementResponseAssetResource(resourceLabel string, fileName string, divisionId string) string { - fullyQualifiedPath, _ := testrunner.NormalizePath(fileName) - normalizeFilePath, _ := testrunner.NormalizeFileName(fileName) - return fmt.Sprintf(` resource "genesyscloud_responsemanagement_responseasset" "%s" { filename = "%s" division_id = %s file_content_hash = filesha256("%s") } -`, resourceLabel, normalizeFilePath, divisionId, fullyQualifiedPath) +`, resourceLabel, fileName, divisionId, fileName) } diff --git a/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go b/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go index 05cdbafe3..b082fe939 100644 --- a/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go +++ b/genesyscloud/routing_queue/resource_genesyscloud_routing_queue_test.go @@ -3,11 +3,13 @@ package routing_queue import ( "fmt" "log" + "path/filepath" "strconv" "strings" "sync" "terraform-provider-genesyscloud/genesyscloud/architect_flow" "terraform-provider-genesyscloud/genesyscloud/architect_user_prompt" + userPrompt "terraform-provider-genesyscloud/genesyscloud/architect_user_prompt" authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" "terraform-provider-genesyscloud/genesyscloud/group" "terraform-provider-genesyscloud/genesyscloud/provider" @@ -616,9 +618,9 @@ func TestAccResourceRoutingQueueFlows(t *testing.T) { queueFlowName1 = "Terraform Flow Test-" + uuid.NewString() queueFlowName2 = "Terraform Flow Test-" + uuid.NewString() queueFlowName3 = "Terraform Flow Test-" + uuid.NewString() - queueFlowFilePath1 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml" - queueFlowFilePath2 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example2.yaml" - queueFlowFilePath3 = "../../examples/resources/genesyscloud_flow/inboundcall_flow_example3.yaml" + queueFlowFilePath1 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example.yaml") + queueFlowFilePath2 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example2.yaml") + queueFlowFilePath3 = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/inboundcall_flow_example3.yaml") queueFlowInboundcallConfig1 = fmt.Sprintf("inboundCall:\n name: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", queueFlowName1) messageInQueueFlowInboundcallConfig3 = fmt.Sprintf("inboundCall:\n name: %s\n defaultLanguage: en-us\n startUpRef: ./menus/menu[mainMenu]\n initialGreeting:\n tts: Archy says hi!!!!!\n menus:\n - menu:\n name: Main Menu\n audio:\n tts: You are at the Main Menu, press 9 to disconnect.\n refId: mainMenu\n choices:\n - menuDisconnect:\n name: Disconnect\n dtmf: digit_9", queueFlowName3) @@ -629,7 +631,7 @@ func TestAccResourceRoutingQueueFlows(t *testing.T) { userPromptDescription1 = "Test description" userPromptResourceLang1 = "en-us" userPromptResourceText1 = "This is a test greeting!" - userPromptResourceFileName2 = testrunner.GetTestDataPath("test-prompt-02.wav") + userPromptResourceFileName2 = testrunner.GetTestDataPath("resource", userPrompt.ResourceType, "test-prompt-02.wav") userPromptResourceTTS1 = "This is a test greeting!" userPromptAsset1 = architect_user_prompt.UserPromptResourceStruct{ Language: userPromptResourceLang1, diff --git a/genesyscloud/scripts/resource_genesyscloud_script_test.go b/genesyscloud/scripts/resource_genesyscloud_script_test.go index 21769dda6..dda25a2b1 100644 --- a/genesyscloud/scripts/resource_genesyscloud_script_test.go +++ b/genesyscloud/scripts/resource_genesyscloud_script_test.go @@ -156,8 +156,6 @@ func getScriptId(scriptResourcePath string, id *string) resource.TestCheckFunc { } func generateScriptResource(resourceLabel, scriptName, filePath, substitutions string) string { - fullyQualifiedPath, _ := testrunner.NormalizePath(filePath) - normalizeFilePath := testrunner.NormalizeSlash(filePath) return fmt.Sprintf(` resource "%s" "%s" { script_name = "%s" @@ -165,7 +163,7 @@ resource "%s" "%s" { file_content_hash = filesha256("%s") %s } - `, ResourceType, resourceLabel, scriptName, normalizeFilePath, fullyQualifiedPath, substitutions) + `, ResourceType, resourceLabel, scriptName, filePath, filePath, substitutions) } func testVerifyScriptDestroyed(state *terraform.State) error { diff --git a/genesyscloud/scripts/resource_genesyscloud_script_utils.go b/genesyscloud/scripts/resource_genesyscloud_script_utils.go index 7988d55c7..2a1a561b8 100644 --- a/genesyscloud/scripts/resource_genesyscloud_script_utils.go +++ b/genesyscloud/scripts/resource_genesyscloud_script_utils.go @@ -6,6 +6,7 @@ import ( "log" "os" "path" + "path/filepath" "terraform-provider-genesyscloud/genesyscloud/provider" resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" "terraform-provider-genesyscloud/genesyscloud/util/files" @@ -18,7 +19,7 @@ func ScriptResolver(scriptId, exportDirectory, subDirectory string, configMap ma exportFileName := fmt.Sprintf("script-%s.json", scriptId) - fullPath := path.Join(exportDirectory, subDirectory) + fullPath := filepath.Join(exportDirectory, subDirectory) if err := os.MkdirAll(fullPath, os.ModePerm); err != nil { return err } @@ -33,8 +34,8 @@ func ScriptResolver(scriptId, exportDirectory, subDirectory string, configMap ma } // Update filepath field in configMap to point to exported script file - fileNameVal := path.Join(subDirectory, exportFileName) - fileContentVal := fmt.Sprintf(`${filesha256("%s")}`, path.Join(subDirectory, exportFileName)) + fileNameVal := filepath.Join(subDirectory, exportFileName) + fileContentVal := fmt.Sprintf(`${filesha256("%s")}`, filepath.Join(subDirectory, exportFileName)) configMap["filepath"] = fileNameVal configMap["file_content_hash"] = fileContentVal diff --git a/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go b/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go index 7f39936c3..e0837a6b7 100644 --- a/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go +++ b/genesyscloud/tfexporter/resource_genesyscloud_tf_export_test.go @@ -9,7 +9,6 @@ import ( "log" "math/rand" "os" - "path" "path/filepath" "regexp" "strconv" @@ -17,8 +16,10 @@ import ( "sync" gcloud "terraform-provider-genesyscloud/genesyscloud" "terraform-provider-genesyscloud/genesyscloud/architect_flow" + userPromptResource "terraform-provider-genesyscloud/genesyscloud/architect_user_prompt" authDivision "terraform-provider-genesyscloud/genesyscloud/auth_division" obContactList "terraform-provider-genesyscloud/genesyscloud/outbound_contact_list" + "terraform-provider-genesyscloud/genesyscloud/platform" "terraform-provider-genesyscloud/genesyscloud/provider" resourceExporter "terraform-provider-genesyscloud/genesyscloud/resource_exporter" routingQueue "terraform-provider-genesyscloud/genesyscloud/routing_queue" @@ -77,7 +78,7 @@ func init() { // queues are exported. func TestAccResourceTfExportIncludeFilterResourcesByRegEx(t *testing.T) { var ( - exportTestDir = "../.terraformregex" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraformregex" + uuid.NewString()) exportResourceLabel = "test-export3" uniquePostfix = randString(7) queueResources = []QueueExport{ @@ -136,7 +137,7 @@ func TestAccResourceTfExportIncludeFilterResourcesByRegEx(t *testing.T) { // The test ensures that resources can be exported directly by their actual label or their sanitized label. func TestAccResourceTfExportIncludeFilterResourcesByRegExAndSanitizedLabels(t *testing.T) { var ( - exportTestDir = "../.terraformregex" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraformregex" + uuid.NewString()) exportResourceLabel = "test-export3_1" uniquePostfix = randString(7) queueResources = []QueueExport{ @@ -200,7 +201,7 @@ func TestAccResourceTfExportIncludeFilterResourcesByRegExAndSanitizedLabels(t *t // exported as well func TestAccResourceTfExportIncludeFilterResourcesByRegExExclusiveToResource(t *testing.T) { var ( - exportTestDir = "../.terraformInclude" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraformInclude" + uuid.NewString()) exportResourceLabel = "test-export4" uniquePostfix = randString(7) @@ -270,7 +271,7 @@ func TestAccResourceTfExportIncludeFilterResourcesByRegExExclusiveToResource(t * // for the queue and should all be exported func TestAccResourceTfExportExcludeFilterResourcesByRegExExclusiveToResource(t *testing.T) { var ( - exportTestDir = "../.terraformExclude" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraformExclude" + uuid.NewString()) exportResourceLabel = "test-export6" uniquePostfix = randString(7) queueResources = []QueueExport{ @@ -344,7 +345,7 @@ func TestAccResourceTfExportExcludeFilterResourcesByRegExExclusiveToResource(t * // The exporter will be run in split mode so 3 resource tf.jsons should be created as well as a provider.tf.json func TestAccResourceTfExportSplitFilesAsJSON(t *testing.T) { var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel = "test-export-split" uniquePostfix = randString(7) expectedFilesPath = []string{ @@ -424,7 +425,7 @@ func TestAccResourceTfExportSplitFilesAsJSON(t *testing.T) { // regular expression provided for the resource. In this test we check against both sanitized and unsanitized labels. func TestAccResourceTfExportExcludeFilterResourcesByRegExExclusiveToResourceAndSanitizedLabels(t *testing.T) { var ( - exportTestDir = "../.terraformExclude" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraformExclude" + uuid.NewString()) exportResourceLabel = "test-export6_1" uniquePostfix = randString(7) @@ -504,7 +505,7 @@ func TestAccResourceTfExportExcludeFilterResourcesByRegExExclusiveToResourceAndS // TestAccResourceTfExportForCompress does a basic test check to make sure the compressed file is created. func TestAccResourceTfExportForCompress(t *testing.T) { var ( - exportTestDir = "../../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel1 = "test-export1" zipFileName = "../archive_genesyscloud_tf_export*" divResourceLabel = "test-division" @@ -547,7 +548,7 @@ func TestAccResourceTfExportForCompress(t *testing.T) { // TestAccResourceTfExport does a basic test check to make sure the export file is created. func TestAccResourceTfExport(t *testing.T) { var ( - exportTestDir = "../../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel1 = "test-export1" configPath = filepath.Join(exportTestDir, defaultTfJSONFile) statePath = filepath.Join(exportTestDir, defaultTfStateFile) @@ -607,7 +608,7 @@ func TestAccResourceTfExport(t *testing.T) { func TestAccResourceTfExportByLabel(t *testing.T) { var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel1 = "test-export1" userResourceLabel1 = "test-user1" @@ -850,7 +851,7 @@ func TestAccResourceTfExportByLabel(t *testing.T) { func TestAccResourceTfExportIncludeFilterResourcesByType(t *testing.T) { var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel = "test-export2" uniquePostfix = randString(7) ) @@ -911,7 +912,7 @@ func TestAccResourceTfExportIncludeFilterResourcesByType(t *testing.T) { // all routing queues that have a regex with -(dev|test)$ in it. We then check to see if there are any prod queues present. func TestAccResourceTfExportExcludeFilterResourcesByRegEx(t *testing.T) { var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel = "test-export5" uniquePostfix = randString(7) @@ -979,7 +980,7 @@ func TestAccResourceTfExportFormAsHCL(t *testing.T) { //t.Parallel() var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportedContents string pathToHclFile = filepath.Join(exportTestDir, defaultTfHCLFile) formName = "terraform_form_evaluations_" + uuid.NewString() @@ -1118,7 +1119,7 @@ func TestAccResourceTfExportQueueAsHCL(t *testing.T) { //t.Parallel() var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportContents string pathToHclFile = filepath.Join(exportTestDir, defaultTfHCLFile) ) @@ -1226,7 +1227,7 @@ func TestAccResourceTfExportQueueAsHCL(t *testing.T) { func TestAccResourceTfExportLogMissingPermissions(t *testing.T) { var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) configPath = filepath.Join(exportTestDir, defaultTfJSONFile) permissionsErrorMessage = "API Error 403 - Missing view permissions." otherErrorMessage = "API Error 411 - Another type of error." @@ -1316,14 +1317,14 @@ func TestAccResourceTfExportUserPromptExportAudioFile(t *testing.T) { userPromptDescription = "Test description" userPromptResourceLanguage = "en-us" userPromptResourceText = "This is a test greeting!" - userResourcePromptFilename1 = testrunner.GetTestDataPath("test-prompt-01.wav") - userResourcePromptFilename2 = testrunner.GetTestDataPath("test-prompt-02.wav") + userResourcePromptFilename1 = testrunner.GetTestDataPath("resource", userPromptResource.ResourceType, "test-prompt-01.wav") + userResourcePromptFilename2 = testrunner.GetTestDataPath("resource", userPromptResource.ResourceType, "test-prompt-02.wav") userPromptResourceLanguage2 = "pt-br" userPromptResourceText2 = "This is a test greeting!!!" exportResourceLabel = "export" - exportTestDir = filepath.Join("../", ".terraform"+uuid.NewString()) + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) ) userPromptAsset := userPrompt.UserPromptResourceStruct{ @@ -1438,7 +1439,7 @@ func TestAccResourceTfExportUserPromptExportAudioFile(t *testing.T) { // Managed can't be set on sites, therefore the default managed site is checked during the test that it is exported as data func TestAccResourceExportManagedSitesAsData(t *testing.T) { var ( - exportTestDir = filepath.Join("..", "..", ".terraform"+uuid.NewString()) + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) resourceLabel = "export" configPath = filepath.Join(exportTestDir, defaultTfJSONFile) statePath = filepath.Join(exportTestDir, defaultTfStateFile) @@ -1449,6 +1450,11 @@ func TestAccResourceExportManagedSitesAsData(t *testing.T) { t.Skipf("failed to get default site %v", err) } + platform := platform.GetPlatform() + if platform.IsDevelopmentPlatform() { + t.Skip("Skipping test for development platform due to inability to properly convert statefile to v4 within development platform") + } + defer func(path string) { if err := os.RemoveAll(path); err != nil { t.Logf("failed to remove dir %s: %s", path, err) @@ -1484,7 +1490,7 @@ func TestAccResourceExportManagedSitesAsData(t *testing.T) { // The exporter will be run in split mode so 3 resource tfs should be created as well as a provider.tf func TestAccResourceTfExportSplitFilesAsHCL(t *testing.T) { var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel = "test-export-split" uniquePostfix = randString(7) expectedFilesPath = []string{ @@ -1711,7 +1717,7 @@ func validatePromptsExported(filename string, expectedPrompts []string) resource func TestAccResourceTfExportUserPromptsExported(t *testing.T) { var ( uniqueStr = strings.Replace(uuid.NewString(), "-", "_", -1) - exportTestDir = filepath.Join("..", "..", ".terraform"+uuid.NewString()) + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) resourceID = "export" dPromptResourceLabel = "d_user_prompt" dPromptNameAttr = "d_user_prompt_test" + uniqueStr @@ -1798,7 +1804,7 @@ resource "genesyscloud_architect_user_prompt" "%s" { // is working properly i.e. script_id should reference a data source pointing to the Default Outbound Script under particular circumstances func TestAccResourceTfExportCampaignScriptIdReferences(t *testing.T) { var ( - exportTestDir = filepath.Join("..", "..", ".terraform"+uuid.NewString()) + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) resourceLabel = "export" campaignNameDefaultScript = "tf test df campaign " + uuid.NewString() @@ -1812,7 +1818,7 @@ func TestAccResourceTfExportCampaignScriptIdReferences(t *testing.T) { queueName = "tf test queue " + uuid.NewString() scriptName = "tf_test_script_" + uuid.NewString() - pathToScriptFile = filepath.Join("..", "..", "test", "data", "resource", "genesyscloud_script", "test_script.json") + pathToScriptFile = testrunner.GetTestDataPath("resource", "genesyscloud_script", "test_script.json") fullyQualifiedPath, _ = filepath.Abs(pathToScriptFile) configPath = filepath.Join(exportTestDir, defaultTfJSONFile) @@ -2145,7 +2151,7 @@ func testUserPromptAudioFileExport(filePath, resourceType, resourceLabel, export // Check that file exists in export directory for _, filename := range fileNames { - pathToWavFile := path.Join(exportDir, filename) + pathToWavFile := filepath.Join(exportDir, filename) if _, err := os.Stat(pathToWavFile); err != nil { return err } @@ -2157,11 +2163,11 @@ func testUserPromptAudioFileExport(filePath, resourceType, resourceLabel, export func TestAccResourceTfExportEnableDependsOn(t *testing.T) { var ( - exportTestDir = "../.terraform" + uuid.NewString() + exportTestDir = testrunner.GetTestTempPath(".terraform" + uuid.NewString()) exportResourceLabel = "test-export2" contactListResourceLabel = "contact_list" + uuid.NewString() contactListName = "terraform contact list" + uuid.NewString() - outboundFlowFilePath = "../../examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml" + outboundFlowFilePath = filepath.Join(testrunner.RootDir, "examples/resources/genesyscloud_flow/outboundcall_flow_example.yaml") flowName = "testflowcxcase" flowResourceLabel = "flow" wrapupcodeResourceLabel = "wrapupcode" diff --git a/genesyscloud/tfexporter/tfstate_exporter.go b/genesyscloud/tfexporter/tfstate_exporter.go index ed899a89f..b8ffe4241 100644 --- a/genesyscloud/tfexporter/tfstate_exporter.go +++ b/genesyscloud/tfexporter/tfstate_exporter.go @@ -107,7 +107,7 @@ func (t *TFStateFileWriter) writeTfState() diag.Diagnostics { cliErrorPostscript := fmt.Sprintf(`The generated tfstate file will need to be upgraded manually by running the following in the state file's directory: '%s state replace-provider %s/-/genesyscloud %s/mypurecloud/genesyscloud'`, platform.Binary(), platform.GetProviderRegistry(), t.providerRegistry) - if platform.IsDebugServer() { + if platform.IsDevelopmentPlatform() { cliErrorPostscript = `The current process is running via a debug server (debug binary detected), and so it is unable to run the proper command to replace the state. Please run this command outside of a debug session.` + cliErrorPostscript log.Print(cliErrorPostscript) return nil diff --git a/genesyscloud/util/testrunner/testrunner.go b/genesyscloud/util/testrunner/testrunner.go index 7c2d9d726..880cc77d3 100644 --- a/genesyscloud/util/testrunner/testrunner.go +++ b/genesyscloud/util/testrunner/testrunner.go @@ -22,12 +22,13 @@ const ( testObjectIdTestCasePlaceHolder = "-TEST-CASE-" ) -func GetTestDataPath(elem ...string) string { - basePath := filepath.Join(getRootDir(), "test", "data") - subPath := filepath.Join(elem...) - return filepath.Join(basePath, subPath) +var RootDir string + +func init() { + RootDir = getRootDir() } +// Helper function that retrieves the location of the root directory func getRootDir() string { _, filename, _, ok := runtime.Caller(0) if !ok { @@ -54,43 +55,16 @@ func getRootDir() string { } } -func NormalizePath(path string) (string, error) { - fullyQualifiedPath, err := filepath.Abs(path) - if err != nil { - return "", err - } - - if runtime.GOOS == "windows" { - // Convert single backslashes to dobule backslashes if necessary - fullyQualifiedPath = strings.ReplaceAll(fullyQualifiedPath, "\\", "\\\\") - } - - return fullyQualifiedPath, nil -} - -func NormalizeFileName(filename string) (string, error) { - fullyQualifiedFineName, err := filepath.Abs(filename) - if err != nil { - return "", err - } - - if runtime.GOOS == "windows" { - // Convert single backslashes to single forwardslashes if necessary - fullyQualifiedFineName = strings.ReplaceAll(fullyQualifiedFineName, "\\", "/") - } - - return fullyQualifiedFineName, nil +func GetTestDataPath(elem ...string) string { + basePath := filepath.Join(RootDir, "test", "data") + subPath := filepath.Join(elem...) + return filepath.Join(basePath, subPath) } -func NormalizeSlash(fileNameWithSlash string) string { - fullyQualifiedFileName := fileNameWithSlash - - if runtime.GOOS == "windows" { - // Convert single backslashes to dobule backslashes if necessary - fullyQualifiedFileName = strings.ReplaceAll(fullyQualifiedFileName, "\\", "\\\\") - } - - return fullyQualifiedFileName +func GetTestTempPath(elem ...string) string { + basePath := filepath.Join(RootDir, "test", "temp") + subPath := filepath.Join(elem...) + return filepath.Join(basePath, subPath) } func GenerateDataSourceTestSteps(resourceType string, testCaseName string, checkFuncs []resource.TestCheckFunc) []resource.TestStep { diff --git a/test/data/test-prompt-01.wav b/test/data/resource/genesyscloud_architect_user_prompt/test-prompt-01.wav similarity index 100% rename from test/data/test-prompt-01.wav rename to test/data/resource/genesyscloud_architect_user_prompt/test-prompt-01.wav diff --git a/test/data/test-prompt-02.wav b/test/data/resource/genesyscloud_architect_user_prompt/test-prompt-02.wav similarity index 100% rename from test/data/test-prompt-02.wav rename to test/data/resource/genesyscloud_architect_user_prompt/test-prompt-02.wav