Skip to content

Commit ceaa12d

Browse files
committed
Support multiple storage implementations in tests
1 parent 86e7b3e commit ceaa12d

File tree

4 files changed

+406
-291
lines changed

4 files changed

+406
-291
lines changed

cli/remove_test.go

Lines changed: 17 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package cli_test
33
import (
44
"bytes"
55
"fmt"
6+
"os"
7+
"path/filepath"
68
"testing"
79

810
"github.com/stretchr/testify/require"
@@ -45,7 +47,7 @@ func TestRemove(t *testing.T) {
4547
{
4648
name: "RemoveOne",
4749
extension: testutil.Extensions[0],
48-
version: "a",
50+
version: testutil.Extensions[0].LatestVersion,
4951
},
5052
{
5153
name: "All",
@@ -67,19 +69,19 @@ func TestRemove(t *testing.T) {
6769
error: "cannot specify both",
6870
extension: testutil.Extensions[0],
6971
all: true,
70-
version: "a",
72+
version: testutil.Extensions[0].LatestVersion,
7173
},
7274
{
7375
name: "NoVersion",
7476
error: "does not exist",
7577
extension: testutil.Extensions[0],
76-
version: "d",
78+
version: "does-not-exist",
7779
},
7880
{
7981
name: "NoVersions",
8082
error: "does not exist",
8183
extension: testutil.Extensions[1],
82-
version: "a",
84+
version: testutil.Extensions[1].LatestVersion,
8385
},
8486
{
8587
name: "AllNoVersions",
@@ -96,9 +98,13 @@ func TestRemove(t *testing.T) {
9698

9799
extdir := t.TempDir()
98100
ext := testutil.Extensions[0]
99-
testutil.AddExtension(t, ext, extdir, "a")
100-
testutil.AddExtension(t, ext, extdir, "b")
101-
testutil.AddExtension(t, ext, extdir, "c")
101+
for _, version := range ext.Versions {
102+
manifestPath := filepath.Join(extdir, ext.Publisher, ext.Name, version, "extension.vsixmanifest")
103+
err := os.MkdirAll(filepath.Dir(manifestPath), 0o755)
104+
require.NoError(t, err)
105+
err = os.WriteFile(manifestPath, testutil.ConvertExtensionToManifestBytes(t, ext, version), 0o644)
106+
require.NoError(t, err)
107+
}
102108

103109
id := fmt.Sprintf("%s.%s", test.extension.Publisher, test.extension.Name)
104110
if test.version != "" {
@@ -123,10 +129,10 @@ func TestRemove(t *testing.T) {
123129
} else {
124130
require.NoError(t, err)
125131
if test.all {
126-
require.Contains(t, output, "Removed 3 versions")
127-
require.Contains(t, output, " - a")
128-
require.Contains(t, output, " - b")
129-
require.Contains(t, output, " - c")
132+
require.Contains(t, output, fmt.Sprintf("Removed %d versions", len(test.extension.Versions)))
133+
for _, version := range test.extension.Versions {
134+
require.Contains(t, output, fmt.Sprintf(" - %s", version))
135+
}
130136
} else {
131137
require.Contains(t, output, fmt.Sprintf("Removed %s", test.version))
132138
}

storage/local_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package storage_test
2+
3+
import (
4+
"os"
5+
"path/filepath"
6+
"testing"
7+
8+
"github.com/stretchr/testify/require"
9+
10+
"cdr.dev/slog"
11+
"cdr.dev/slog/sloggers/slogtest"
12+
"github.com/coder/code-marketplace/storage"
13+
)
14+
15+
func localFactory(t *testing.T) testStorage {
16+
extdir := t.TempDir()
17+
logger := slogtest.Make(t, &slogtest.Options{IgnoreErrors: true}).Leveled(slog.LevelDebug)
18+
s, err := storage.NewLocalStorage(extdir, logger)
19+
require.NoError(t, err)
20+
return testStorage{
21+
storage: s,
22+
write: func(content []byte, elem ...string) {
23+
dest := filepath.Join(extdir, filepath.Join(elem...))
24+
err := os.MkdirAll(filepath.Dir(dest), 0o755)
25+
require.NoError(t, err)
26+
err = os.WriteFile(dest, content, 0o644)
27+
require.NoError(t, err)
28+
},
29+
exists: func(elem ...string) bool {
30+
_, err := os.Stat(filepath.Join(extdir, filepath.Join(elem...)))
31+
return err == nil
32+
},
33+
}
34+
}

0 commit comments

Comments
 (0)