Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

helper/resource: Refresh during plan rather than separately and remove state shimming when possible #223

Merged
merged 3 commits into from
Nov 29, 2023

Commits on Nov 22, 2023

  1. helper/resource: Refresh during plan rather than separately and remov…

    …e state shimming when possible
    
    Reference: hashicorp/terraform-plugin-sdk#515
    Reference: #194
    Reference: #222
    Reference: https://developer.hashicorp.com/terraform/cli/commands/refresh
    
    This change replaces the usage of explicit refresh commands by instead calling the next command with the relevant refresh flags. Separating the refresh from plan was previously done with the idea that the testing logic may introduce further assertion hooks based on that explicit refresh. Over time though, the Terraform recommendations for refreshing and planning have solidified around always recommending to use a plan with behavior changing flags as necessary. Even the Terraform CLI implementation of the refresh command itself has been shifted to call a plan with special flags.
    
    This should reduce testing times decently as it means that the testing logic will skip spinning up and tearing down any relevant providers two times per `TestStep` and whatever time would be associated with Terraform CLI loading for those commands. Comparing the testing performed across this Go module:
    
    Prior: `TF_ACC=1 go test -count=1 ./...  111.07s user 59.37s system 233% cpu 1:12.99 total`
    Now: `TF_ACC=1 go test -count=1 ./...  90.81s user 48.25s system 229% cpu 1:00.54 total`
    
    The separated refresh also prevented `PreApply` plan checks from catching certain situations because the refreshed state could cause the plan to be missing changes.
    bflad committed Nov 22, 2023
    Configuration menu
    Copy the full SHA
    711e67a View commit details
    Browse the repository at this point in the history
  2. Update CHANGELOG for #223

    bflad committed Nov 22, 2023
    Configuration menu
    Copy the full SHA
    a3e3b70 View commit details
    Browse the repository at this point in the history

Commits on Nov 27, 2023

  1. Configuration menu
    Copy the full SHA
    6b0628e View commit details
    Browse the repository at this point in the history