}) It("prints progress while content is being read", func() { for { time.Sleep(50 * time.Microsecond) _, err := progressReader.Read(b) if err != nil { break } } Expect(ui.SayCallCount()).To(Equal(1)) Expect(ui.SayArgsForCall(0)).To(ContainSubstring("\rDone ")) Expect(ui.PrintCapturingNoOutputCallCount()).To(BeNumerically(">", 0)) status, _ := ui.PrintCapturingNoOutputArgsForCall(0) Expect(status).To(ContainSubstring("uploaded...")) status, _ = ui.PrintCapturingNoOutputArgsForCall(ui.PrintCapturingNoOutputCallCount() - 1) Expect(status).To(Equal("\r ")) }) It("reads the correct number of bytes", func() { bytesRead := 0 for { n, err := progressReader.Read(b) if err != nil { break } bytesRead += n