• James Bardin's avatar
    context Refresh and Apply sometimes return nil · 928e6067
    James Bardin authored
    The documentation for Refresh indicates that it will always return a
    valid state, but that wasn't true in the case of a graph builder error.
    While this same concept wasn't documented for Apply, it was still
    assumed in the terraform apply code.
    
    Since the helper testing framework relies on the absence of a state to
    determine if it can call Destroy, the Context can't can't start
    returning a state in all cases. Document this, and use the State method
    to fetch the correct state value after Apply.
    
    Add a nil check to the WriteState function, so that writing a nil state
    is a noop.
    
    Make sure to init before sorting the state, to make sure we're not
    attempting to sort nil values. This isn't technically needed with the
    current code, but it's just safer in general.
    928e6067