github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/atc/engine/task_delegate_test.go (about)

     1  package engine_test
     2  
     3  import (
     4  	"encoding/json"
     5  	"time"
     6  
     7  	. "github.com/onsi/ginkgo"
     8  	. "github.com/onsi/gomega"
     9  
    10  	"code.cloudfoundry.org/clock/fakeclock"
    11  	"code.cloudfoundry.org/lager/lagertest"
    12  	"github.com/pf-qiu/concourse/v6/atc"
    13  	"github.com/pf-qiu/concourse/v6/atc/db/dbfakes"
    14  	"github.com/pf-qiu/concourse/v6/atc/engine"
    15  	"github.com/pf-qiu/concourse/v6/atc/exec"
    16  	"github.com/pf-qiu/concourse/v6/atc/policy/policyfakes"
    17  	"github.com/pf-qiu/concourse/v6/vars"
    18  )
    19  
    20  var _ = Describe("TaskDelegate", func() {
    21  	var (
    22  		logger            *lagertest.TestLogger
    23  		fakeBuild         *dbfakes.FakeBuild
    24  		fakeClock         *fakeclock.FakeClock
    25  		fakePolicyChecker *policyfakes.FakeChecker
    26  
    27  		state exec.RunState
    28  
    29  		now = time.Date(1991, 6, 3, 5, 30, 0, 0, time.UTC)
    30  
    31  		delegate exec.TaskDelegate
    32  
    33  		exitStatus exec.ExitStatus
    34  	)
    35  
    36  	BeforeEach(func() {
    37  		logger = lagertest.NewTestLogger("test")
    38  
    39  		fakeBuild = new(dbfakes.FakeBuild)
    40  		fakeClock = fakeclock.NewFakeClock(now)
    41  		credVars := vars.StaticVariables{
    42  			"source-param": "super-secret-source",
    43  			"git-key":      "{\n123\n456\n789\n}\n",
    44  		}
    45  		state = exec.NewRunState(noopStepper, credVars, true)
    46  
    47  		fakePolicyChecker = new(policyfakes.FakeChecker)
    48  
    49  		delegate = engine.NewTaskDelegate(fakeBuild, "some-plan-id", state, fakeClock, fakePolicyChecker)
    50  		delegate.SetTaskConfig(atc.TaskConfig{
    51  			Platform: "some-platform",
    52  			Run: atc.TaskRunConfig{
    53  				Path: "some-foo-path",
    54  				Dir:  "some-bar-dir",
    55  			},
    56  		})
    57  	})
    58  
    59  	Describe("Initializing", func() {
    60  		JustBeforeEach(func() {
    61  			delegate.Initializing(logger)
    62  		})
    63  
    64  		It("saves an event", func() {
    65  			Expect(fakeBuild.SaveEventCallCount()).To(Equal(1))
    66  			event := fakeBuild.SaveEventArgsForCall(0)
    67  			Expect(event.EventType()).To(Equal(atc.EventType("initialize-task")))
    68  		})
    69  
    70  		It("calls SaveEvent with the taskConfig", func() {
    71  			Expect(fakeBuild.SaveEventCallCount()).To(Equal(1))
    72  			event := fakeBuild.SaveEventArgsForCall(0)
    73  			Expect(json.Marshal(event)).To(MatchJSON(`{
    74  				"time": 675927000,
    75  				"origin": {"id": "some-plan-id"},
    76  				"config": {
    77  					"platform": "some-platform",
    78  					"image":"",
    79  					"run": {
    80  						"path": "some-foo-path",
    81  						"args": null,
    82  						"dir": "some-bar-dir"
    83  					},
    84  					"inputs":null
    85  				}
    86  			}`))
    87  		})
    88  	})
    89  
    90  	Describe("Starting", func() {
    91  		JustBeforeEach(func() {
    92  			delegate.Starting(logger)
    93  		})
    94  
    95  		It("saves an event", func() {
    96  			Expect(fakeBuild.SaveEventCallCount()).To(Equal(1))
    97  			event := fakeBuild.SaveEventArgsForCall(0)
    98  			Expect(event.EventType()).To(Equal(atc.EventType("start-task")))
    99  		})
   100  
   101  		It("calls SaveEvent with the taskConfig", func() {
   102  			Expect(fakeBuild.SaveEventCallCount()).To(Equal(1))
   103  			event := fakeBuild.SaveEventArgsForCall(0)
   104  			Expect(json.Marshal(event)).To(MatchJSON(`{
   105  				"time": 675927000,
   106  				"origin": {"id": "some-plan-id"},
   107  				"config": {
   108  					"platform": "some-platform",
   109  					"image":"",
   110  					"run": {
   111  						"path": "some-foo-path",
   112  						"args": null,
   113  						"dir": "some-bar-dir"
   114  					},
   115  					"inputs":null
   116  				}
   117  			}`))
   118  		})
   119  	})
   120  
   121  	Describe("Finished", func() {
   122  		JustBeforeEach(func() {
   123  			delegate.Finished(logger, exitStatus)
   124  		})
   125  
   126  		It("saves an event", func() {
   127  			Expect(fakeBuild.SaveEventCallCount()).To(Equal(1))
   128  			event := fakeBuild.SaveEventArgsForCall(0)
   129  			Expect(event.EventType()).To(Equal(atc.EventType("finish-task")))
   130  		})
   131  	})
   132  })