Skip to content
This repository has been archived by the owner on Sep 9, 2024. It is now read-only.

Commit

Permalink
Merge pull request #85 from monzo/empty-noop-mock
Browse files Browse the repository at this point in the history
Allow empty Noop() to be added to mock op chains
  • Loading branch information
YoSmudge committed Sep 30, 2022
2 parents 1b67a91 + 34269b8 commit ac4547a
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 0 deletions.
5 changes: 5 additions & 0 deletions mock.go
Original file line number Diff line number Diff line change
Expand Up @@ -135,6 +135,11 @@ func (mo mockMultiOp) Add(inOps ...Op) Op {
ops = append(ops, op...)
case mockOp:
ops = append(ops, op)
case multiOp:
if len(op) == 0 {
continue
}
panic("can't Add non-mock ops to mockMultiOp")
default:
panic("can't Add non-mock ops to mockMultiOp")
}
Expand Down
14 changes: 14 additions & 0 deletions mock_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -514,6 +514,20 @@ func (s *MockSuite) TestNoop() {
s.Equal("Jill", users[1].Name)
}

// Don't panic when adding an empty Noop to an existing op chain
func (s *MockSuite) TestEmptyNoop() {
addresses := s.insertAddresses()
addressToUpdate := addresses[0]
addressToUpdate.PostCode = "XYZ"
emptyNoop := Noop()
op := s.embMapTbl.Set(addressToUpdate)
op = op.Add(s.embTsTbl.Set(addressToUpdate))
s.NotPanics(func() {
op = op.Add(emptyNoop)
})
s.NoError(op.Run())
}

func (s *MockSuite) TestEmbedMapRead() {
expectedAddresses := s.insertAddresses()

Expand Down

0 comments on commit ac4547a

Please sign in to comment.