github.com/paketoio/libpak@v1.3.1/sherpa/sherpa_test.go (about) 1 /* 2 * Copyright 2018-2020 the original author or authors. 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * https://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package sherpa_test 18 19 import ( 20 "fmt" 21 "testing" 22 23 "github.com/buildpacks/libcnb/mocks" 24 . "github.com/onsi/gomega" 25 "github.com/paketoio/libpak/sherpa" 26 "github.com/sclevine/spec" 27 "github.com/stretchr/testify/mock" 28 ) 29 30 func testSherpa(t *testing.T, context spec.G, it spec.S) { 31 var ( 32 Expect = NewWithT(t).Expect 33 34 exitHandler *mocks.ExitHandler 35 ) 36 37 it.Before(func() { 38 exitHandler = &mocks.ExitHandler{} 39 exitHandler.On("Error", mock.Anything) 40 }) 41 42 it("exits with error", func() { 43 sherpa.Execute(func() error { 44 return fmt.Errorf("test-error") 45 }, sherpa.WithExitHandler(exitHandler)) 46 47 Expect(exitHandler.Calls).To(HaveLen(1)) 48 }) 49 50 it("exits without error", func() { 51 sherpa.Execute(func() error { 52 return nil 53 }, sherpa.WithExitHandler(exitHandler)) 54 55 Expect(exitHandler.Calls).To(HaveLen(0)) 56 }) 57 }