Skip to content

Commit e413855

Browse files
committed
Add local storage constructor
This will parallel with the Artifactory constructor which will need to instantiate an Artifactory client.
1 parent 84ee910 commit e413855

File tree

5 files changed

+29
-33
lines changed

5 files changed

+29
-33
lines changed

cli/add.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,7 @@ func add() *cobra.Command {
4747
}
4848

4949
// Always local storage for now.
50-
store := &storage.Local{
51-
ExtDir: extdir,
52-
Logger: logger,
53-
}
54-
50+
store := storage.NewLocalStorage(ctx, extdir, logger)
5551
ext, err := store.AddExtension(ctx, args[0])
5652
if err != nil {
5753
return err

cli/remove.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,7 @@ func remove() *cobra.Command {
4747
}
4848

4949
// Always local storage for now.
50-
store := &storage.Local{
51-
ExtDir: extdir,
52-
Logger: logger,
53-
}
54-
50+
store := storage.NewLocalStorage(ctx, extdir, logger)
5551
removed, err := store.RemoveExtension(ctx, args[0], all)
5652
if err != nil {
5753
return err

cli/server.go

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,7 @@ func server() *cobra.Command {
6969
}
7070

7171
// Always local storage for now.
72-
store := &storage.Local{
73-
ExtDir: extdir,
74-
Logger: logger,
75-
}
72+
store := storage.NewLocalStorage(ctx, extdir, logger)
7673

7774
// Always no database for now.
7875
database := &database.NoDB{

storage/local.go

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,13 @@ type Local struct {
2727
Logger slog.Logger
2828
}
2929

30+
func NewLocalStorage(_ context.Context, extdir string, logger slog.Logger) *Local {
31+
return &Local{
32+
ExtDir: extdir,
33+
Logger: logger,
34+
}
35+
}
36+
3037
func (s *Local) AddExtension(ctx context.Context, source string) (*Extension, error) {
3138
vsixBytes, err := readVSIX(ctx, source)
3239
if err != nil {

storage/storage_test.go

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,17 @@ import (
2020
"github.com/stretchr/testify/require"
2121
"golang.org/x/mod/semver"
2222

23+
"cdr.dev/slog"
24+
"cdr.dev/slog/sloggers/slogtest"
2325
"github.com/coder/code-marketplace/storage"
2426
"github.com/coder/code-marketplace/testutil"
2527
)
2628

29+
func newStorage(t *testing.T, dir string) storage.Storage {
30+
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
31+
return storage.NewLocalStorage(context.Background(), dir, logger)
32+
}
33+
2734
func TestFileServer(t *testing.T) {
2835
t.Parallel()
2936

@@ -32,7 +39,8 @@ func TestFileServer(t *testing.T) {
3239
err := os.WriteFile(file, []byte("bar"), 0o644)
3340
require.NoError(t, err)
3441

35-
server := (&storage.Local{ExtDir: dir}).FileServer()
42+
s := newStorage(t, dir)
43+
server := s.FileServer()
3644

3745
req := httptest.NewRequest("GET", "/foo", nil)
3846
rec := httptest.NewRecorder()
@@ -81,7 +89,7 @@ func TestManifest(t *testing.T) {
8189
ext := testutil.Extensions[0]
8290
expected := addExtension(t, ext, extdir, "some-version")
8391

84-
s := &storage.Local{ExtDir: extdir}
92+
s := newStorage(t, extdir)
8593
manifest, err := s.Manifest(context.Background(), ext.Publisher, ext.Name, "some-version")
8694
require.NoError(t, err)
8795
require.Equal(t, expected, manifest)
@@ -99,19 +107,15 @@ func TestManifest(t *testing.T) {
99107
err = os.WriteFile(file, []byte("invalid"), 0o644)
100108
require.NoError(t, err)
101109

102-
s := &storage.Local{ExtDir: extdir}
103-
110+
s := newStorage(t, extdir)
104111
_, err = s.Manifest(context.Background(), "foo", "bar", "baz")
105112
require.Error(t, err)
106113
})
107114

108115
t.Run("Missing", func(t *testing.T) {
109116
t.Parallel()
110117

111-
extdir := t.TempDir()
112-
s := &storage.Local{
113-
ExtDir: extdir,
114-
}
118+
s := newStorage(t, t.TempDir())
115119
_, err := s.Manifest(context.Background(), "foo", "bar", "baz")
116120
require.Error(t, err)
117121
})
@@ -151,7 +155,7 @@ func TestWalkExtensions(t *testing.T) {
151155
t.Run("NoExtensions", func(t *testing.T) {
152156
t.Parallel()
153157

154-
s := &storage.Local{ExtDir: t.TempDir()}
158+
s := newStorage(t, t.TempDir())
155159
called := false
156160
err := s.WalkExtensions(context.Background(), func(manifest *storage.VSIXManifest, versions []string) error {
157161
called = true
@@ -164,7 +168,7 @@ func TestWalkExtensions(t *testing.T) {
164168
t.Run("PropagateError", func(t *testing.T) {
165169
t.Parallel()
166170

167-
s := &storage.Local{ExtDir: extdir}
171+
s := newStorage(t, extdir)
168172
ran := 0
169173
expected := errors.New("error")
170174
err := s.WalkExtensions(context.Background(), func(manifest *storage.VSIXManifest, versions []string) error {
@@ -179,7 +183,7 @@ func TestWalkExtensions(t *testing.T) {
179183
t.Parallel()
180184

181185
got := []extension{}
182-
s := &storage.Local{ExtDir: extdir}
186+
s := newStorage(t, extdir)
183187
err := s.WalkExtensions(context.Background(), func(manifest *storage.VSIXManifest, versions []string) error {
184188
got = append(got, extension{
185189
manifest: manifest,
@@ -353,8 +357,7 @@ func TestAddExtension(t *testing.T) {
353357
extdir, err = test.setup(extdir)
354358
require.NoError(t, err)
355359
}
356-
s := &storage.Local{ExtDir: extdir}
357-
360+
s := newStorage(t, extdir)
358361
got, err := s.AddExtension(context.Background(), server.URL)
359362
if test.error != "" {
360363
require.Error(t, err)
@@ -425,8 +428,7 @@ func TestAddExtension(t *testing.T) {
425428
}
426429

427430
extdir := t.TempDir()
428-
s := &storage.Local{ExtDir: extdir}
429-
431+
s := newStorage(t, extdir)
430432
source, err := test.source(extdir)
431433
require.NoError(t, err)
432434

@@ -522,8 +524,7 @@ func TestAddExtension(t *testing.T) {
522524
err = os.WriteFile(vsixPath, vsix, 0o644)
523525
require.NoError(t, err)
524526

525-
s := &storage.Local{ExtDir: extdir}
526-
527+
s := newStorage(t, extdir)
527528
got, err := s.AddExtension(context.Background(), vsixPath)
528529
require.Error(t, err)
529530
require.Regexp(t, test.error, err.Error())
@@ -633,8 +634,7 @@ func TestRemoveExtension(t *testing.T) {
633634
addExtension(t, ext, extdir, "b")
634635
addExtension(t, ext, extdir, "c")
635636

636-
s := &storage.Local{ExtDir: extdir}
637-
637+
s := newStorage(t, extdir)
638638
removed, err := s.RemoveExtension(context.Background(), test.remove, test.all)
639639
if test.error != "" {
640640
require.Error(t, err)

0 commit comments

Comments
 (0)