github.com/redhat-appstudio/e2e-tests@v0.0.0-20240520140907-9709f6f59323/pkg/testspecs/ginkgosspec_test.go (about) 1 package testspecs 2 3 import ( 4 "fmt" 5 "os" 6 "testing" 7 ) 8 9 func TestMergeTemplates(t *testing.T) { 10 cwd, err := os.Getwd() 11 if err != nil { 12 t.Fatal(err) 13 return 14 } 15 16 tempDir, err := os.MkdirTemp(cwd, "test-merge-templates") 17 if err != nil { 18 t.Fatal(err) 19 return 20 } 21 defer os.RemoveAll(tempDir) 22 23 err = os.Chdir(tempDir) 24 if err != nil { 25 t.Fatal(err) 26 return 27 } 28 29 var fileNames []string 30 var expectedString string 31 32 for i := 0; i < 10; i++ { 33 file, err := os.CreateTemp(tempDir, "tempFile") 34 if err != nil { 35 t.Fatal(err) 36 return 37 } 38 lineContent := fmt.Sprintf("This should be line number '%d' from '%s'", i, file.Name()) 39 _, err = file.WriteString(lineContent) 40 if err != nil { 41 t.Fatal(err) 42 return 43 } 44 expectedString += lineContent + "\n\n" 45 fileNames = append(fileNames, file.Name()) 46 } 47 48 mergedFile, err := mergeTemplates(fileNames...) 49 if err != nil { 50 t.Errorf("failed to merge templates: %+v", err) 51 return 52 } 53 54 mergedFile, err = os.Open(mergedFile.Name()) 55 if err != nil { 56 t.Error(err) 57 return 58 } 59 mergedFileBytes, err := os.ReadFile(mergedFile.Name()) 60 if err != nil { 61 t.Error(err) 62 return 63 } 64 65 mergedFileContent := string(mergedFileBytes) 66 if mergedFileContent != expectedString { 67 t.Errorf("content of merged file does not match the expected content") 68 } 69 }