Skip to content

Commit 758791a

Browse files
committed
improved the cmd executor tests
1 parent 7972f09 commit 758791a

File tree

2 files changed

+25
-8
lines changed

2 files changed

+25
-8
lines changed

executor/cmd.go

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,32 +25,43 @@ func NewCommandExecutor(secrets secret.Store) CommandExecutor {
2525
// Subscribe implements executor.Executor
2626
func (e *CommandExecutor) Subscribe(bus chan task.ExecutionTask) {
2727
for t := range bus {
28-
if err := e.execute(t.Target, t.Path, t.Shutdown); err != nil {
28+
if err := e.execute(t.Target, t.Path, t.Shutdown, t.Env); err != nil {
2929
zap.L().Error("executor task unsuccessful",
3030
zap.String("target", t.Target.Name),
3131
zap.Bool("shutdown", t.Shutdown),
3232
zap.Error(err))
3333
}
3434
}
35-
return
3635
}
3736

3837
func (e *CommandExecutor) execute(
3938
target task.Target,
4039
path string,
4140
shutdown bool,
41+
execEnv map[string]string,
4242
) (err error) {
43-
env, err := e.secrets.GetSecretsForTarget(target.Name)
43+
secrets, err := e.secrets.GetSecretsForTarget(target.Name)
4444
if err != nil {
4545
return errors.Wrap(err, "failed to get secrets for target")
4646
}
4747

48+
env := make(map[string]string)
49+
50+
// merge execution environment with secrets
51+
for k, v := range execEnv {
52+
env[k] = v
53+
}
54+
for k, v := range secrets {
55+
env[k] = v
56+
}
57+
4858
zap.L().Debug("executing with secrets",
4959
zap.String("target", target.Name),
5060
zap.Strings("cmd", target.Up),
5161
zap.String("url", target.RepoURL),
5262
zap.String("dir", path),
53-
zap.Int("secrets", len(env)))
63+
zap.Int("env", len(env)),
64+
zap.Int("secrets", len(secrets)))
5465

5566
return target.Execute(path, env, shutdown)
5667
}

executor/cmd_test.go

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,11 @@ func TestMain(m *testing.M) {
1818
}
1919

2020
func TestCommandExecutor(t *testing.T) {
21-
ce := executor.NewCommandExecutor(&memory.MemorySecrets{})
21+
ce := executor.NewCommandExecutor(&memory.MemorySecrets{
22+
Secrets: map[string]string{
23+
"SOME_SECRET": "123",
24+
},
25+
})
2226
bus := make(chan task.ExecutionTask)
2327

2428
g := errgroup.Group{}
@@ -27,7 +31,7 @@ func TestCommandExecutor(t *testing.T) {
2731
bus <- task.ExecutionTask{
2832
Target: task.Target{
2933
Name: "test_executor",
30-
Up: []string{"touch", "01"},
34+
Up: []string{"git", "init"},
3135
},
3236
Path: "./.test",
3337
}
@@ -43,7 +47,9 @@ func TestCommandExecutor(t *testing.T) {
4347
// wait for the task to be consumed and executed
4448
time.Sleep(time.Second)
4549

46-
if _, err := os.Stat(".test/01"); err == os.ErrNotExist {
47-
t.Error("expected file .test/01 to exist:", err)
50+
if _, err := os.Stat(".test/.git"); err != nil {
51+
t.Error("expected path .test/.git to exist:", err)
4852
}
53+
54+
os.RemoveAll(".test/.git")
4955
}

0 commit comments

Comments
 (0)