MCPcopy Create free account
hub / github.com/coder/coder / TestWriteSecretFiles

Function TestWriteSecretFiles

agent/write_secret_files_internal_test.go:14–185  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

12)
13
14func TestWriteSecretFiles(t *testing.T) {
15 t.Parallel()
16
17 t.Run("AbsolutePath", func(t *testing.T) {
18 t.Parallel()
19 fs := afero.NewMemMapFs()
20 ctx := testutil.Context(t, testutil.WaitShort)
21 logger := slogtest.Make(t, nil)
22
23 writeSecretFiles(ctx, logger, fs, "/home/coder", []agentsdk.WorkspaceSecret{
24 {FilePath: "/etc/myapp/config.json", Value: []byte(`{"key":"val"}`)},
25 })
26
27 content, err := afero.ReadFile(fs, "/etc/myapp/config.json")
28 require.NoError(t, err)
29 require.Equal(t, `{"key":"val"}`, string(content))
30
31 fi, err := fs.Stat("/etc/myapp/config.json")
32 require.NoError(t, err)
33 require.Equal(t, 0o600, int(fi.Mode().Perm()))
34
35 di, err := fs.Stat("/etc/myapp")
36 require.NoError(t, err)
37 require.Equal(t, 0o700, int(di.Mode().Perm()))
38 })
39
40 t.Run("TildePath", func(t *testing.T) {
41 t.Parallel()
42 fs := afero.NewMemMapFs()
43 ctx := testutil.Context(t, testutil.WaitShort)
44 logger := slogtest.Make(t, nil)
45
46 writeSecretFiles(ctx, logger, fs, "/home/coder", []agentsdk.WorkspaceSecret{
47 {FilePath: "~/.ssh/id_rsa", Value: []byte("private-key")},
48 })
49
50 content, err := afero.ReadFile(fs, "/home/coder/.ssh/id_rsa")
51 require.NoError(t, err)
52 require.Equal(t, "private-key", string(content))
53
54 fi, err := fs.Stat("/home/coder/.ssh/id_rsa")
55 require.NoError(t, err)
56 require.Equal(t, 0o600, int(fi.Mode().Perm()))
57
58 di, err := fs.Stat("/home/coder/.ssh")
59 require.NoError(t, err)
60 require.Equal(t, 0o700, int(di.Mode().Perm()))
61 })
62
63 t.Run("TildePathNoHomeDir", func(t *testing.T) {
64 t.Parallel()
65 fs := afero.NewMemMapFs()
66 ctx := testutil.Context(t, testutil.WaitShort)
67 logger := slogtest.Make(t, nil)
68
69 writeSecretFiles(ctx, logger, fs, "", []agentsdk.WorkspaceSecret{
70 {FilePath: "~/.config/token", Value: []byte("token")},
71 })

Callers

nothing calls this directly

Calls 7

ContextFunction · 0.92
writeSecretFilesFunction · 0.85
RunMethod · 0.65
ReadFileMethod · 0.65
WriteFileMethod · 0.65
EqualMethod · 0.45
IsEmptyMethod · 0.45

Tested by

no test coverage detected