Terraform Provider doesn't reset between tests

We’re developing a Terraform provider in Go using the terraform-plugin-framework, and implementing tests for it using the terraform-plugin-testing module.

Tests for resources and data sources are simple enough to implement, however I’d like to implement some tests for the provider itself, because the Configure routine has some non-trivial logic. Since it isn’t easy to check the state of the provider itself, I implemented acceptance tests for a resource. Each test case would start the provider (different test cases would have different provider configurations) and then try to connect to a resource; if the connection was successful, that means the provider was configured successfully. In the end, I ended up with a Go file like the one below:

import (
	"testing"
	"github.com/hashicorp/terraform-plugin-framework/providerserver"
	"github.com/hashicorp/terraform-plugin-go/tfprotov6"
	"github.com/hashicorp/terraform-plugin-testing/helper/resource"
)

var (
	TestAccProtoV6ProviderFactories = map[string]func() (tfprotov6.ProviderServer, error){
		"hashicups": providerserver.NewProtocol6WithError(stackit.New("test-version")()),
	}
)

func TestConfigA(t *testing.T) {
	resource.Test(t, resource.TestCase{
		ProtoV6ProviderFactories: TestAccProtoV6ProviderFactories,
		Steps: []resource.TestStep{
			{
				ResourceName: "Test Config Provider",
				Config: `
				provider "hashicups" {
					service_account_token = "[VALID TOKEN]"
				}
				`,
			},
		},
	})
}

func TestConfigB(t *testing.T) {
	resource.Test(t, resource.TestCase{
		ProtoV6ProviderFactories: TestAccProtoV6ProviderFactories,
		Steps: []resource.TestStep{
			{
				ResourceName: "Test Config Provider",
				Config: `
				provider "hashicups" {
					service_account_token = "[VALID TOKEN]"
				}
				`,
			},
		},
	})
}

func TestConfigC(t *testing.T) {
	regMatchAll, err := regexp.Compile(`[\s\S]*`)
	if err != nil {
		t.Fatalf("Couldn't compile regex: %v", err)
	}
	
	resource.Test(t, resource.TestCase{
		ProtoV6ProviderFactories: TestAccProtoV6ProviderFactories,
		Steps: []resource.TestStep{
			{
				ResourceName: "Test Config Provider",
				Config: `
				provider "hashicups" {
					service_account_token = "[INVALID TOKEN]"
				}
				`,
				ExpectError: regMatchAll,
			},
		},
	})
}

These tests are successful when I run each one individually, but they fail when I run them all at the same time. TestConfigC has invalid credentials and should fail, but doesn’t. After some debugging, it seems like the provider initialized in either TestConfigA or TestConfigB (which have valid credentials) is somehow being used in TestConfigC, and so the valid credentials are being used instead of the invalid ones.

Can you confirm if this behavior is expected or not, and if there’s any way of resetting the provider between tests?