package googlecompute import ( "github.com/mitchellh/multistep" "github.com/stretchr/testify/assert" "testing" ) func TestStepWaitInstanceStartup(t *testing.T) { state := testState(t) step := new(StepWaitInstanceStartup) c := state.Get("config").(*Config) d := state.Get("driver").(*DriverMock) testZone := "test-zone" testInstanceName := "test-instance-name" c.Zone = testZone state.Put("instance_name", testInstanceName) // This step stops when it gets Done back from the metadata. d.GetInstanceMetadataResult = StartupScriptStatusDone // Run the step. assert.Equal(t, step.Run(state), multistep.ActionContinue, "Step should have passed and continued.") // Check that GetInstanceMetadata was called properly. assert.Equal(t, d.GetInstanceMetadataZone, testZone, "Incorrect zone passed to GetInstanceMetadata.") assert.Equal(t, d.GetInstanceMetadataName, testInstanceName, "Incorrect instance name passed to GetInstanceMetadata.") }