add workspace new compat tests
diff --git a/tfexec/internal/e2etest/workspace_test.go b/tfexec/internal/e2etest/workspace_test.go
index d5ff3b6..a9ac373 100644
--- a/tfexec/internal/e2etest/workspace_test.go
+++ b/tfexec/internal/e2etest/workspace_test.go
@@ -104,6 +104,54 @@
 	})
 }
 
+// The -lock and -lock-timeout flags for terraform workspace new were introduced in 0.12;
+// test that earlier versions return a compat error.
+func TestWorkspace_compat(t *testing.T) {
+	// TODO new test helper for compat?
+
+	runTest(t, "basic", func(t *testing.T, tfv *version.Version, tf *tfexec.Terraform) {
+		t.Run("create new workspace with -lock option", func(t *testing.T) {
+			const newWorkspace = "new1"
+			err := tf.WorkspaceNew(context.Background(), newWorkspace, tfexec.Lock(true))
+
+			if tfv.LessThan(version.Must(version.NewVersion("0.12.0"))) {
+				if err == nil {
+					t.Fatal("expected error running WorkspaceNew, but got none")
+				}
+				var compatErr *tfexec.ErrVersionMismatch
+				if !errors.As(err, &compatErr) {
+					t.Fatalf("expected ErrVersionMismatch, but got %s", err)
+				}
+			} else {
+				if err != nil {
+					t.Fatalf("error creating new workspace: %s", err)
+				}
+			}
+		})
+	})
+
+	runTest(t, "basic", func(t *testing.T, tfv *version.Version, tf *tfexec.Terraform) {
+		t.Run("create new workspace with -lock-timeout option", func(t *testing.T) {
+			const newWorkspace = "new1"
+			err := tf.WorkspaceNew(context.Background(), newWorkspace, tfexec.LockTimeout("909s"))
+
+			if tfv.LessThan(version.Must(version.NewVersion("0.12.0"))) {
+				if err == nil {
+					t.Fatal("expected error running WorkspaceNew, but got none")
+				}
+				var compatErr *tfexec.ErrVersionMismatch
+				if !errors.As(err, &compatErr) {
+					t.Fatalf("expected ErrVersionMismatch, but got %s", err)
+				}
+			} else {
+				if err != nil {
+					t.Fatalf("error creating new workspace: %s", err)
+				}
+			}
+		})
+	})
+}
+
 func assertWorkspaceList(t *testing.T, tf *tfexec.Terraform, expectedCurrent string, expectedWorkspaces ...string) {
 	actualWorkspaces, actualCurrent, err := tf.WorkspaceList(context.Background())
 	if err != nil {