...

Source file src/sigs.k8s.io/kustomize/kyaml/pathutil/pathutil_test.go

Documentation: sigs.k8s.io/kustomize/kyaml/pathutil

     1  // Copyright 2019 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package pathutil
     5  
     6  import (
     7  	"os"
     8  	"path/filepath"
     9  	"testing"
    10  
    11  	"github.com/stretchr/testify/assert"
    12  )
    13  
    14  func TestSubDirsWithFile(t *testing.T) {
    15  	var tests = []struct {
    16  		name          string
    17  		fileName      string
    18  		recurse       bool
    19  		outFilesCount int
    20  	}{
    21  		{
    22  			name:          "dirs-with-file-recurse",
    23  			fileName:      "Krmfile",
    24  			outFilesCount: 3,
    25  			recurse:       true,
    26  		},
    27  		{
    28  			name:          "dirs-with-non-existent-file-recurse",
    29  			fileName:      "non-existent-file.txt",
    30  			outFilesCount: 0,
    31  			recurse:       true,
    32  		},
    33  		{
    34  			name:          "dir-with-file-no-recurse",
    35  			fileName:      "Krmfile",
    36  			outFilesCount: 1,
    37  			recurse:       false,
    38  		},
    39  	}
    40  
    41  	dir := t.TempDir()
    42  	err := createTestDirStructure(dir)
    43  	if !assert.NoError(t, err) {
    44  		t.FailNow()
    45  	}
    46  
    47  	for i := range tests {
    48  		test := tests[i]
    49  		t.Run(test.name, func(t *testing.T) {
    50  			res, err := DirsWithFile(dir, test.fileName, test.recurse)
    51  			if !assert.NoError(t, err) {
    52  				t.FailNow()
    53  			}
    54  			if !assert.Equal(t, test.outFilesCount, len(res)) {
    55  				t.FailNow()
    56  			}
    57  		})
    58  	}
    59  }
    60  
    61  func createTestDirStructure(dir string) error {
    62  	/*
    63  		Adds the folders to the input dir with following structure
    64  		dir
    65  		├── Krmfile
    66  		├── subpkg1
    67  		│   ├── Krmfile
    68  		│   └── subdir1
    69  		└── subpkg2
    70  		    └── Krmfile
    71  	*/
    72  	err := os.MkdirAll(filepath.Join(dir, "subpkg1/subdir1"), 0777|os.ModeDir)
    73  	if err != nil {
    74  		return err
    75  	}
    76  	err = os.MkdirAll(filepath.Join(dir, "subpkg2"), 0777|os.ModeDir)
    77  	if err != nil {
    78  		return err
    79  	}
    80  	err = os.WriteFile(filepath.Join(dir, "subpkg1", "Krmfile"), []byte(""), 0644)
    81  	if err != nil {
    82  		return err
    83  	}
    84  	err = os.WriteFile(filepath.Join(dir, "subpkg2", "Krmfile"), []byte(""), 0644)
    85  	if err != nil {
    86  		return err
    87  	}
    88  	err = os.WriteFile(filepath.Join(dir, "Krmfile"), []byte(""), 0644)
    89  	if err != nil {
    90  		return err
    91  	}
    92  	return nil
    93  }
    94  

View as plain text