github.com/hellofresh/janus@v0.0.0-20230925145208-ce8de8183c67/pkg/api/file_repository_test.go (about) 1 package api 2 3 import ( 4 "os" 5 "path/filepath" 6 "testing" 7 8 "github.com/stretchr/testify/assert" 9 "github.com/stretchr/testify/require" 10 11 "github.com/hellofresh/janus/pkg/proxy" 12 ) 13 14 func TestNewFileSystemRepository(t *testing.T) { 15 fsRepo := newRepo(t) 16 17 allDefinitions, err := fsRepo.FindAll() 18 assert.NoError(t, err) 19 assert.Equal(t, 3, len(allDefinitions)) 20 21 defToAdd := &Definition{ 22 Name: "foo-bar", 23 Proxy: &proxy.Definition{ 24 ListenPath: "/foo/bar/*", 25 Upstreams: &proxy.Upstreams{ 26 Balancing: "roundrobin", 27 Targets: []*proxy.Target{ 28 {Target: "http://example.com/foo/bar/"}, 29 }, 30 }, 31 }, 32 } 33 err = fsRepo.add(defToAdd) 34 require.NoError(t, err) 35 36 def, err := fsRepo.findByName(defToAdd.Name) 37 require.NoError(t, err) 38 assert.Equal(t, defToAdd.Name, def.Name) 39 assert.Equal(t, defToAdd.Proxy.ListenPath, def.Proxy.ListenPath) 40 } 41 42 func TestFileSystemRepository_Add(t *testing.T) { 43 fsRepo := newRepo(t) 44 45 invalidName := &Definition{Name: ""} 46 err := fsRepo.add(invalidName) 47 require.Error(t, err) 48 } 49 50 func newRepo(t *testing.T) *FileSystemRepository { 51 wd, err := os.Getwd() 52 assert.NoError(t, err) 53 54 // ./../../assets/apis 55 exampleAPIsPath := filepath.Join(wd, "..", "..", "assets", "apis") 56 info, err := os.Stat(exampleAPIsPath) 57 require.NoError(t, err) 58 require.True(t, info.IsDir()) 59 60 fsRepo, err := NewFileSystemRepository(exampleAPIsPath) 61 require.NoError(t, err) 62 63 return fsRepo 64 }