Skip to content

Commit

Permalink
feat: verify HasNotBeenCalled (#10)
Browse files Browse the repository at this point in the history
  • Loading branch information
le-yams authored Nov 25, 2024
1 parent 869c70d commit 742ee5f
Show file tree
Hide file tree
Showing 2 changed files with 43 additions and 0 deletions.
5 changes: 5 additions & 0 deletions verify.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,8 @@ func (verifier *CallVerifier) HasBeenCalled(expectedCallsCount int) []*Invocatio
func (verifier *CallVerifier) HasBeenCalledOnce() *Invocation {
return verifier.HasBeenCalled(1)[0]
}

// HasNotBeenCalled asserts that no HTTP call has been made.
func (verifier *CallVerifier) HasNotBeenCalled() {
_ = verifier.HasBeenCalled(0)
}
38 changes: 38 additions & 0 deletions verify_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -155,3 +155,41 @@ func TestVerifyingSingleInvocationReturnsThePerformedCall(t *testing.T) {
WithStringPayload("Hello").
WithHeader("Content-Type", "text/plain")
}

func TestVerifyingNoInvocationPasses(t *testing.T) {
t.Parallel()
// Arrange
testState := NewTestingMock(t)
mockedAPI := API(testState)
defer func() { mockedAPI.Close() }()

mockedAPI.
Stub(http.MethodGet, "/endpoint").
WithStatusCode(http.StatusOK)

// Act
mockedAPI.Verify(http.MethodGet, "/endpoint").HasNotBeenCalled()

// Assert
testState.assertDidNotFailed()
}

func TestVerifyingNoInvocationFails(t *testing.T) {
t.Parallel()
// Arrange
testState := NewTestingMock(t)
mockedAPI := API(testState)
defer func() { mockedAPI.Close() }()

mockedAPI.
Stub(http.MethodGet, "/endpoint").
WithStatusCode(http.StatusOK)

// Act
client := http.Client{}
_, _ = client.Get(mockedAPI.GetURL().String() + "/endpoint")
mockedAPI.Verify(http.MethodGet, "/endpoint").HasNotBeenCalled()

// Assert
testState.assertFailedWithFatal()
}

0 comments on commit 742ee5f

Please sign in to comment.