github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/types/fskey_test.go (about)

     1  package types
     2  
     3  import (
     4  	"io/fs"
     5  	"os"
     6  	"testing"
     7  
     8  	"github.com/liamg/memoryfs"
     9  
    10  	"github.com/khulnasoft-lab/defsec/pkg/extrafs"
    11  
    12  	"github.com/stretchr/testify/assert"
    13  )
    14  
    15  func Test_FSKey(t *testing.T) {
    16  
    17  	systems := []fs.FS{
    18  		os.DirFS("."),
    19  		os.DirFS(".."),
    20  		extrafs.OSDir("."),
    21  		extrafs.OSDir(".."),
    22  		memoryfs.New(),
    23  		memoryfs.New(),
    24  	}
    25  
    26  	keys := make(map[string]struct{})
    27  
    28  	t.Run("uniqueness", func(t *testing.T) {
    29  		for _, system := range systems {
    30  			key := CreateFSKey(system)
    31  			_, ok := keys[key]
    32  			assert.False(t, ok, "filesystem keys should be unique")
    33  			keys[key] = struct{}{}
    34  		}
    35  	})
    36  
    37  	t.Run("reproducible", func(t *testing.T) {
    38  		for _, system := range systems {
    39  			key := CreateFSKey(system)
    40  			_, ok := keys[key]
    41  			assert.True(t, ok, "filesystem keys should be reproducible")
    42  		}
    43  	})
    44  }