github.com/getgauge/gauge@v1.6.9/reporter/coloredConsole_test.go (about) 1 /*---------------------------------------------------------------- 2 * Copyright (c) ThoughtWorks, Inc. 3 * Licensed under the Apache License, Version 2.0 4 * See LICENSE in the project root for license information. 5 *----------------------------------------------------------------*/ 6 7 package reporter 8 9 import ( 10 "github.com/getgauge/gauge-proto/go/gauge_messages" 11 "github.com/getgauge/gauge/execution/result" 12 "github.com/getgauge/gauge/gauge" 13 . "gopkg.in/check.v1" 14 ) 15 16 func setupColoredConsole() (*dummyWriter, *coloredConsole) { 17 dw := newDummyWriter() 18 cc := newColoredConsole(dw) 19 return dw, cc 20 } 21 22 func (s *MySuite) TestScenarioStartInNonVerbose_ColoredConsole(c *C) { 23 dw, cc := setupColoredConsole() 24 cc.indentation = 2 25 scnRes := result.NewScenarioResult(&gauge_messages.ProtoScenario{ExecutionStatus: gauge_messages.ExecutionStatus_PASSED}) 26 27 cc.ScenarioStart(&gauge.Scenario{Heading: &gauge.Heading{Value: "my first scenario"}}, &gauge_messages.ExecutionInfo{}, scnRes) 28 29 c.Assert(dw.output, Equals, " ## my first scenario\t") 30 } 31 32 func (s *MySuite) TestScenarioEndInNonVerbose_ColoredConsole(c *C) { 33 dw, cc := setupColoredConsole() 34 cc.indentation = 2 35 scnRes := result.NewScenarioResult(&gauge_messages.ProtoScenario{ExecutionStatus: gauge_messages.ExecutionStatus_FAILED, Failed: true}) 36 cc.ScenarioStart(&gauge.Scenario{Heading: &gauge.Heading{Value: "failing step"}}, &gauge_messages.ExecutionInfo{}, scnRes) 37 dw.output = "" 38 39 _, err := cc.Write([]byte("fail reason: blah")) 40 c.Assert(err, IsNil) 41 cc.ScenarioEnd(nil, scnRes, &gauge_messages.ExecutionInfo{}) 42 43 c.Assert(dw.output, Equals, "fail reason: blah\n") 44 } 45 46 func (s *MySuite) TestFailingStepEnd_NonVerbose(c *C) { 47 dw, cc := setupColoredConsole() 48 cc.indentation = 2 49 stepText := "* say hello" 50 errMsg := "pre hook failure message" 51 stacktrace := "my stacktrace" 52 specName := "hello.spec" 53 specInfo := &gauge_messages.ExecutionInfo{CurrentSpec: &gauge_messages.SpecInfo{FileName: specName}} 54 stepExeRes := &gauge_messages.ProtoStepExecutionResult{ExecutionResult: &gauge_messages.ProtoExecutionResult{ErrorMessage: errMsg, StackTrace: stacktrace}} 55 stepRes := result.NewStepResult(&gauge_messages.ProtoStep{StepExecutionResult: stepExeRes}) 56 stepRes.SetStepFailure() 57 cc.StepStart(stepText) 58 dw.output = "" 59 60 cc.StepEnd(gauge.Step{LineText: "* say hello"}, stepRes, specInfo) 61 62 c.Assert(dw.output, Equals, getFailureSymbol()) 63 } 64 65 func (s *MySuite) TestPassingStepEndInNonVerbose_ColoredConsole(c *C) { 66 dw, cc := setupColoredConsole() 67 cc.indentation = 2 68 cc.StepStart("* say hello") 69 dw.output = "" 70 71 specName := "hello.spec" 72 specInfo := &gauge_messages.ExecutionInfo{CurrentSpec: &gauge_messages.SpecInfo{FileName: specName}} 73 stepRes := result.NewStepResult(&gauge_messages.ProtoStep{StepExecutionResult: &gauge_messages.ProtoStepExecutionResult{}}) 74 75 cc.StepEnd(gauge.Step{LineText: "* say hello"}, stepRes, specInfo) 76 77 c.Assert(dw.output, Equals, getSuccessSymbol()) 78 }