test(778): verify user create results in an identity and cache

Steve Moyer created

Change summary

commands/user_create.go      |  3 +++
commands/user_create_test.go | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 40 insertions(+)

Detailed changes

commands/user_create.go 🔗

@@ -22,6 +22,9 @@ func newUserCreateCommand() *cobra.Command {
 		Short:   "Create a new identity.",
 		PreRunE: loadBackend(env),
 		RunE: closeBackend(env, func(cmd *cobra.Command, args []string) error {
+			env.err = out{Writer: cmd.ErrOrStderr()}
+			env.out = out{Writer: cmd.OutOrStdout()}
+
 			return runUserCreate(env, options)
 		}),
 	}

commands/user_create_test.go 🔗

@@ -0,0 +1,37 @@
+package commands_test
+
+import (
+	"path/filepath"
+	"strings"
+	"testing"
+
+	"github.com/stretchr/testify/require"
+)
+
+func newTestEnvAndUser(t *testing.T) (*testEnv, string) {
+	t.Helper()
+
+	testEnv := newTestEnv(t)
+
+	testEnv.cmd.SetArgs(
+		[]string{
+			"user",
+			"create",
+			"--non-interactive",
+			"-n John Doe",
+			"-e jdoe@example.com",
+		})
+
+	testEnv.Execute(t)
+
+	return testEnv, strings.TrimSpace(testEnv.out.String())
+}
+
+func TestUserCreateCommand(t *testing.T) {
+	testEnv, userID := newTestEnvAndUser(t)
+
+	t.Log("CWD:", testEnv.cwd)
+
+	require.FileExists(t, filepath.Join(testEnv.cwd, ".git", "refs", "identities", userID))
+	require.FileExists(t, filepath.Join(testEnv.cwd, ".git", "git-bug", "identity-cache"))
+}