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 })