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  }