From a2a5fcf79bf43c99f5a108d4692be36a6dfd8623 Mon Sep 17 00:00:00 2001
From: Mathias Fredriksson <mafredri@gmail.com>
Date: Mon, 12 Aug 2024 12:54:30 +0300
Subject: [PATCH] fix: prevent test flake by waiting on copy (#27)

---
 internal/provider/git_test.go | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/internal/provider/git_test.go b/internal/provider/git_test.go
index a512a85..86131fe 100644
--- a/internal/provider/git_test.go
+++ b/internal/provider/git_test.go
@@ -135,17 +135,19 @@ func startSSHServer(ctx context.Context, t testing.TB) string {
 				_, _ = io.Copy(in, s)
 				_ = in.Close()
 			}()
+			outCopyDone := make(chan struct{})
 			go func() {
 				_, _ = io.Copy(s, out)
 				_ = out.Close()
-				_ = s.CloseWrite()
+				close(outCopyDone)
 			}()
 			err = cmd.Wait()
 			if err != nil {
 				t.Logf("command failed: %s", err)
 			}
+			<-outCopyDone
 
-			t.Logf("session ended: %s", s.RawCommand())
+			t.Logf("session ended (cmd=%q, code=%d)", s.RawCommand(), cmd.ProcessState.ExitCode())
 
 			err = s.Exit(cmd.ProcessState.ExitCode())
 			if err != nil {