Describe("VisualizeCommand", func() { var visualizeCommand cli.Command BeforeEach(func() { commandFactory := command_factory.NewAppExaminerCommandFactory(fakeAppExaminer, terminalUI, fakeTerm, fakeClock, fakeExitHandler, fakeGraphicalVisualizer, fakeTaskExaminer, systemDomain) visualizeCommand = commandFactory.MakeVisualizeCommand() }) It("displays a visualization of cells", func() { listCells := []app_examiner.CellInfo{ {CellID: "cell-1", RunningInstances: 3, ClaimedInstances: 2}, {CellID: "cell-2", RunningInstances: 2, ClaimedInstances: 1}, {CellID: "cell-3", RunningInstances: 0, ClaimedInstances: 0}, } fakeAppExaminer.ListCellsReturns(listCells, nil) test_helpers.ExecuteCommandWithArgs(visualizeCommand, []string{}) Expect(outputBuffer).To(test_helpers.SayLine(colors.Bold("Distribution"))) Expect(outputBuffer).To(test_helpers.SayLine("cell-1: " + colors.Green("•••") + colors.Yellow("••") + cursor.ClearToEndOfLine())) Expect(outputBuffer).To(test_helpers.SayLine("cell-2: " + colors.Green("••") + colors.Yellow("•") + cursor.ClearToEndOfLine())) Expect(outputBuffer).To(test_helpers.SayLine("cell-3: " + colors.Red("empty") + cursor.ClearToEndOfLine())) }) Context("when the app examiner returns an error", func() { It("alerts the user fetching the cells returns an error", func() { fakeAppExaminer.ListCellsReturns(nil, errors.New("The list was lost")) test_helpers.ExecuteCommandWithArgs(visualizeCommand, []string{})