Resource:     "some-input-resource",
									Type:         "some-type",
									Version:      db.Version{"explicit": "version"},
									Metadata:     []db.MetadataField{{"explicit", "metadata"}},
								}))
								Ω(explicit).Should(BeTrue())
							})
						})
					})
				})
			})
		})

		Describe("Failed", func() {
			JustBeforeEach(func() {
				inputDelegate.Failed(errors.New("nope"))
			})

			It("does not save the build's input", func() {
				Ω(fakeDB.SaveBuildInputCallCount()).Should(BeZero())
			})

			It("saves an error event", func() {
				Ω(fakeDB.SaveBuildEventCallCount()).Should(Equal(1))

				buildID, savedEvent := fakeDB.SaveBuildEventArgsForCall(0)
				Ω(buildID).Should(Equal(42))
				Ω(savedEvent).Should(Equal(event.Error{
					Origin: event.Origin{
						Type:     event.OriginTypeGet,
						Name:     "some-input",