45 lines
854 B
Go
45 lines
854 B
Go
package docker
|
|
|
|
import (
|
|
"github.com/mitchellh/multistep"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestStepTempDir_impl(t *testing.T) {
|
|
var _ multistep.Step = new(StepTempDir)
|
|
}
|
|
|
|
func TestStepTempDir(t *testing.T) {
|
|
state := testState(t)
|
|
step := new(StepTempDir)
|
|
defer step.Cleanup(state)
|
|
|
|
// sanity test
|
|
if _, ok := state.GetOk("temp_dir"); ok {
|
|
t.Fatalf("temp_dir should not be in state yet")
|
|
}
|
|
|
|
// run the step
|
|
if action := step.Run(state); action != multistep.ActionContinue {
|
|
t.Fatalf("bad action: %#v", action)
|
|
}
|
|
|
|
// Verify that we got the temp dir
|
|
dirRaw, ok := state.GetOk("temp_dir")
|
|
if !ok {
|
|
t.Fatalf("should've made temp_dir")
|
|
}
|
|
dir := dirRaw.(string)
|
|
|
|
if _, err := os.Stat(dir); err != nil {
|
|
t.Fatalf("err: %s", err)
|
|
}
|
|
|
|
// Cleanup
|
|
step.Cleanup(state)
|
|
if _, err := os.Stat(dir); err == nil {
|
|
t.Fatalf("dir should be gone")
|
|
}
|
|
}
|